Get the last received request.
public getLastRequest ( ) : Psr\Http\Message\RequestInterface | ||
return | Psr\Http\Message\RequestInterface |
protected function shouldHaveMadeATokenRequest() { $lastRequest = $this->mockHandler->getLastRequest(); $this->assertEquals('POST', $lastRequest->getMethod()); $this->assertEquals($this->apiBaseUrl . '/oauth/token', $lastRequest->getUri()); $requestBody = $lastRequest->getBody(); $expectedBody = new MultipartStream([['name' => 'grant_type', 'contents' => 'authorization_code'], ['name' => 'code', 'contents' => $this->authorization->getCode()], ['name' => 'redirect_uri', 'contents' => $this->clientConfig->getParams()['redirect_uri']], ['name' => 'client_id', 'contents' => $this->clientConfig->getParams()['client_id']]], $requestBody->getBoundary()); $this->assertEquals((string) $expectedBody, (string) $requestBody); }
public function shouldHaveMadeATokenRequest() { $lastRequest = $this->mockHandler->getLastRequest(); $requestParams = $this->getRequestParams(); $this->assertEquals('POST', $lastRequest->getMethod()); $this->assertEquals($this->getTokenEndpoint(), $lastRequest->getUri()); $this->assertInstanceOf(MultipartStream::class, $lastRequest->getBody()); $expectedBody = new MultipartStream($requestParams, $lastRequest->getBody()->getBoundary()); $this->assertEquals((string) $expectedBody, (string) $lastRequest->getBody()); }
/** * @test */ public function it_uses_default_uri_when_non_is_specified() { $doSomething = new DoSomething(["data" => "test command"]); $messageProducer = $this->httpMessageProducer; $messageProducer($doSomething); $this->assertNotNull($this->mockHandler->getLastRequest()); $request = $this->mockHandler->getLastRequest(); $messageArr = json_decode($request->getBody(), true); $doSomethingArr = $doSomething->toArray(); $doSomethingArr['created_at'] = $doSomething->createdAt()->format('Y-m-d\\TH:i:s.u'); $this->assertEquals($doSomethingArr, $messageArr); $this->assertEquals('http://localhost:8080/api/messages', $request->getUri()); }
public function testOutOfBoundsAccess() { $users = $this->client->getRepository(User::class)->findAll(); $this->assertInstanceOf(UserSet::class, $users); $this->guzzleMock->append(new Response(200, ['Content-Type' => 'application/json'], file_get_contents(__DIR__ . '/../Resources/http/admin/users@per_page=100&page=1.json'))); $this->setExpectedException(\OutOfBoundsException::class); try { $users->offsetGet(152); } finally { $this->assertNotNull($this->guzzleMock->getLastRequest()); $this->assertEquals('/admin/users', $this->guzzleMock->getLastRequest()->getUri()->getPath()); $this->assertEquals('per_page=100', $this->guzzleMock->getLastRequest()->getUri()->getQuery()); } }
public function testCanGetLastRequestAndOptions() { $res = new Response(); $mock = new MockHandler([$res]); $request = new Request('GET', 'http://example.com'); $mock($request, ['foo' => 'bar']); $this->assertSame($request, $mock->getLastRequest()); $this->assertEquals(['foo' => 'bar'], $mock->getLastOptions()); }
/** * Test submitting a ticket */ public function testSubmitTicket() { // Our sample data $sampleDescription = "Sample description"; $sampleSubject = "Sample subject"; $sampleEmail = "*****@*****.**"; $samplePriority = 3; $sampleStatus = 4; // Mock a response from the response factory $mockResponse = $this->getMockBuilder('Silktide\\FreshdeskApi\\Response')->disableOriginalConstructor()->getMock(); $this->responseFactoryMock->expects($this->atLeastOnce())->method('generateResponse')->willReturn($mockResponse); // Mock a guzzle response and add it to the queue $this->addMockResponse(200, ['Content-Type' => 'application/json'], '{"helpdesk_ticket" : {}}'); // Submit ticket $response = $this->client->submitTicket($sampleDescription, $sampleSubject, $sampleEmail, $samplePriority, $sampleStatus); // Expected structure of request to Freshdesk $expectedRequestStructure = ['helpdesk_ticket' => ["description" => $sampleDescription, "subject" => $sampleSubject, "email" => $sampleEmail, "priority" => $samplePriority, "status" => $sampleStatus]]; // Get the last request made and check it conforms $lastRequest = $this->guzzleMockHandler->getLastRequest(); $this->assertEquals($this->domain . '/helpdesk/tickets.json', $lastRequest->getUri(), 'API URL called was incorrect'); $this->assertEquals('POST', $lastRequest->getMethod(), 'Call should have been POST'); $this->assertArrayMatches($expectedRequestStructure, json_decode($lastRequest->getBody()->__toString(), true), 'request body JSON'); $this->assertSame($mockResponse, $response, 'Expected response object to be passed back'); }
public function testHttpDefaultSchemeIfUriHasNone() { $mockHandler = new MockHandler([new Response()]); $client = new Client(['handler' => $mockHandler]); $client->request('GET', '//example.org/test'); $this->assertSame('http://example.org/test', (string) $mockHandler->getLastRequest()->getUri()); }
/** * @test * * Should get Guzzle response and JSON body */ function itShouldReturnGuzzleResponseAndJsonBody() { $response = new Response(200, ['http_x_shopify_shop_api_call_limit' => '2/80'], file_get_contents(__DIR__ . '/fixtures/admin__shop.json')); $mock = new MockHandler([$response]); $client = new Client(['handler' => $mock]); $api = new BasicShopifyAPI(); $api->setClient($client); $api->setShop('example.myshopify.com'); $api->setApiKey('123'); $api->setAccessToken('!@#'); // Fake param just to test it receives it $request = $api->request('GET', '/admin/shop.json', ['limit' => 1]); $data = json_decode($mock->getLastRequest()->getBody()); $token_header = $mock->getLastRequest()->getHeader('X-Shopify-Access-Token')[0]; $this->assertEquals(true, is_object($request)); $this->assertInstanceOf('GuzzleHttp\\Psr7\\Response', $request->response); $this->assertEquals(200, $request->response->getStatusCode()); $this->assertEquals(true, is_object($request->body)); $this->assertEquals('Apple Computers', $request->body->shop->name); $this->assertEquals(1, $data->limit); $this->assertEquals('!@#', $token_header); }
public function testDoesNotAddRefererWhenGoingFromHttpsToHttp() { $mock = new MockHandler([new Response(302, ['Location' => 'http://test.com']), new Response(200)]); $stack = new HandlerStack($mock); $stack->push(Middleware::redirect()); $handler = $stack->resolve(); $request = new Request('GET', 'https://example.com?a=b'); $promise = $handler($request, ['allow_redirects' => ['max' => 2, 'referer' => true]]); $promise->wait(); $this->assertFalse($mock->getLastRequest()->hasHeader('Referer')); }