コード例 #1
0
ファイル: CaptureActionTest.php プロジェクト: eamador/Payum
 /**
  * @test
  */
 public function shouldCaptureWithObtainedCreditCardWhenTokenReturned()
 {
     $gatewayMock = $this->createGatewayMock();
     $gatewayMock->expects($this->once())->method('execute')->with($this->isInstanceOf('Payum\\Core\\Request\\ObtainCreditCard'))->will($this->returnCallback(function (ObtainCreditCard $request) {
         $card = new CreditCard();
         $card->setToken('theCreditCardToken');
         $request->set($card);
     }));
     $apiMock = $this->createApiMock();
     $apiMock->expects($this->once())->method('payment')->will($this->returnValue(array('FOO' => 'FOOVAL', 'BAR' => 'BARVAL')));
     $action = new CaptureAction();
     $action->setApi($apiMock);
     $action->setGateway($gatewayMock);
     $request = new Capture(array('AMOUNT' => 10, 'CLIENTUSERAGENT' => 'anAgent', 'CLIENTIP' => '127.0.0.1'));
     //guard
     $this->assertTrue($action->supports($request));
     $action->execute($request);
     $model = iterator_to_array($request->getModel());
     $this->assertEquals(['AMOUNT' => 10, 'CLIENTUSERAGENT' => 'anAgent', 'CLIENTIP' => '127.0.0.1', 'ALIAS' => 'theCreditCardToken', 'FOO' => 'FOOVAL', 'BAR' => 'BARVAL'], $model);
 }
コード例 #2
0
ファイル: CreditCardTest.php プロジェクト: stan5621/eduwind
 /**
  * @test
  */
 public function shouldAllowGetPreviouslySetToken()
 {
     $card = new CreditCard();
     $card->setToken('theToken');
     $this->assertEquals('theToken', $card->getToken());
 }
コード例 #3
0
 /**
  * @test
  */
 public function shouldCorrectlyConvertCreditCardToken()
 {
     $creditCard = new CreditCard();
     $creditCard->setToken('theCustomerId');
     $order = new Payment();
     $order->setCreditCard($creditCard);
     $action = new ConvertPaymentAction();
     $action->execute($convert = new Convert($order, 'array'));
     $details = $convert->getResult();
     $this->assertNotEmpty($details);
     $this->assertArrayHasKey('customer', $details);
     $this->assertEquals('theCustomerId', $details['customer']);
 }
コード例 #4
0
 /**
  * @test
  */
 public function shouldObtainCreditCardAndPopulateCardReferenceFieldIfNotSet()
 {
     $firstModel = new \stdClass();
     $model = new \ArrayObject([]);
     $responseMock = $this->getMock(OmnipayAbstractResponse::class, [], [], '', false);
     $responseMock->expects($this->once())->method('getData')->willReturn([]);
     $requestMock = $this->getMock(OmnipayRequestInterface::class);
     $requestMock->expects($this->once())->method('send')->willReturn($responseMock);
     $omnipayGateway = $this->getMock(CreditCardGateway::class, [], [], '', false);
     $omnipayGateway->expects($this->once())->method('purchase')->with(['cardReference' => 'theCardToken', 'clientIp' => ''])->willReturn($requestMock);
     $gateway = $this->createGatewayMock();
     $gateway->expects($this->at(0))->method('execute')->with($this->isInstanceOf(ObtainCreditCard::class))->willReturnCallback(function (ObtainCreditCard $request) use($firstModel, $model) {
         $this->assertSame($firstModel, $request->getFirstModel());
         $this->assertSame($model, $request->getModel());
         $card = new CreditCard();
         $card->setToken('theCardToken');
         $request->set($card);
     });
     $action = new CaptureAction();
     $action->setApi($omnipayGateway);
     $action->setGateway($gateway);
     $capture = new Capture($firstModel);
     $capture->setModel($model);
     $action->execute($capture);
     $details = iterator_to_array($model);
     $this->assertArrayNotHasKey('card', $details);
     $this->assertArrayHasKey('cardReference', $details);
     $this->assertEquals('theCardToken', $details['cardReference']);
 }