/** * @test */ public function shouldProxyWholeNotificationToClientSend() { $actualRequest = null; $clientMock = $this->createClientMock(); $clientMock->expects($this->once())->method('send')->with($this->isInstanceOf('Buzz\\Message\\Form\\FormRequest'), $this->isInstanceOf('Buzz\\Message\\Response'))->will($this->returnCallback(function ($request, $response) use(&$actualRequest) { $response->setHeaders(array('HTTP/1.1 200 OK')); $response->setContent('ACK=Success'); $actualRequest = $request; })); $api = new Api($clientMock, array('sandbox' => false)); $expectedNotification = array('foo' => 'foo', 'bar' => 'baz'); $api->notifyValidate($expectedNotification); $this->assertInstanceOf('Buzz\\Message\\Form\\FormRequest', $actualRequest); $this->assertEquals(array('cmd' => Api::CMD_NOTIFY_VALIDATE) + $expectedNotification, $actualRequest->getFields()); $this->assertEquals($api->getIpnEndpoint(), $actualRequest->getUrl()); $this->assertEquals('POST', $actualRequest->getMethod()); }
/** * @test */ public function shouldProxyWholeNotificationToClientSend() { /** @var RequestInterface $actualRequest */ $actualRequest = null; $clientMock = $this->createHttpClientMock(); $clientMock->expects($this->once())->method('send')->will($this->returnCallback(function (RequestInterface $request) use(&$actualRequest) { $actualRequest = $request; return new Response(200); })); $api = new Api(array('sandbox' => false), $clientMock, $this->createHttpMessageFactory()); $expectedNotification = array('foo' => 'foo', 'bar' => 'baz'); $api->notifyValidate($expectedNotification); $content = array(); parse_str($actualRequest->getBody()->getContents(), $content); $this->assertInstanceOf('Psr\\Http\\Message\\RequestInterface', $actualRequest); $this->assertEquals(array('cmd' => Api::CMD_NOTIFY_VALIDATE) + $expectedNotification, $content); $this->assertEquals($api->getIpnEndpoint(), $actualRequest->getUri()); $this->assertEquals('POST', $actualRequest->getMethod()); }