/** * @param \Buzz\Message\Form\FormRequest $request * * @throws \Payum\Core\Exception\Http\HttpException * * @return \Payum\Core\Bridge\Buzz\JsonResponse */ protected function doRequest(FormRequest $request) { $request->setMethod('POST'); $request->fromUrl($this->getApiEndpoint()); $this->client->send($request, $response = new JsonResponse()); if (false == $response->isSuccessful()) { throw HttpException::factory($request, $response); } return $response; }
/** * @test */ public function shouldCaptureWithObtainedCreditCard() { $paymentMock = $this->createPaymentMock(); $paymentMock ->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); })) ; $apiResponse = new JsonResponse(); $apiResponse->setContent(json_encode(array( 'FOO' => 'FOOVAL', 'BAR' => 'BARVAL', ))); $apiMock = $this->createApiMock(); $apiMock ->expects($this->once()) ->method('payment') ->will($this->returnValue($apiResponse)) ; $action = new CaptureAction(); $action->setApi($apiMock); $action->setPayment($paymentMock); $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']); }