getLastRequest() public method

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());
 }
示例#6
0
 /**
  * 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());
 }
示例#8
0
 /**
  * @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'));
 }