Ejemplo n.º 1
0
 /**
  * @test
  */
 public function shouldPassFirstAndCurrentModelsWithObtainCreditCardSubRequest()
 {
     $firstModel = new \stdClass();
     $currentModel = new \ArrayObject(array('AMOUNT' => 10, 'CLIENTUSERAGENT' => 'anAgent', 'CLIENTIP' => '127.0.0.1'));
     $apiMock = $this->createApiMock();
     $apiMock->expects($this->once())->method('payment')->will($this->returnValue(array('FOO' => 'FOOVAL', 'BAR' => 'BARVAL')));
     $gatewayMock = $this->createGatewayMock();
     $gatewayMock->expects($this->once())->method('execute')->with($this->isInstanceOf('Payum\\Core\\Request\\ObtainCreditCard'))->will($this->returnCallback(function (ObtainCreditCard $request) use($firstModel, $currentModel) {
         $this->assertSame($firstModel, $request->getFirstModel());
         $this->assertSame($currentModel, $request->getModel());
         $card = new CreditCard();
         $card->setExpireAt(new \DateTime('2014-10-01'));
         $request->set($card);
     }));
     $action = new CaptureAction();
     $action->setApi($apiMock);
     $action->setGateway($gatewayMock);
     $capture = new Capture($firstModel);
     $capture->setModel($currentModel);
     $action->execute($capture);
 }
Ejemplo n.º 2
0
 /**
  * @test
  */
 public function shouldCaptureWithObtainedCreditCard()
 {
     $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->setNumber('1234567812345678');
         $card->setExpireAt(new \DateTime('2014-10-01'));
         $card->setHolder('John Doe');
         $card->setSecurityCode('123');
         $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->assertArrayHasKey('AMOUNT', $model);
     $this->assertEquals(10, $model['AMOUNT']);
     $this->assertArrayHasKey('FOO', $model);
     $this->assertEquals('FOOVAL', $model['FOO']);
 }