예제 #1
0
 /**
  * @covers \Wordsmith\Project::all
  */
 public function testGetAllProjects()
 {
     $mockResponse = new Response(200);
     $mockResponseBody = EntityBody::factory(fopen(__DIR__ . '/mock/bodies/projects.txt', 'r+'));
     $mockResponse->setBody($mockResponseBody);
     $mockResponse->setHeaders(array("Host" => "httpbin.org", "User-Agent" => "curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3", "Accept" => "application/json", "Content-Type" => "application/json"));
     $plugin = new MockPlugin();
     $plugin->addResponse($mockResponse);
     $client = new HttpClient();
     $client->addSubscriber($plugin);
     $request = $client->get('https://api.automatedinsights.com/v1/projects');
     $response = $request->send();
     $this->assertEquals(200, $response->getStatusCode());
     $this->assertTrue(in_array('Host', array_keys($response->getHeaders()->toArray())));
     $this->assertTrue($response->hasHeader("User-Agent"));
     $this->assertCount(4, $response->getHeaders());
     $this->assertSame($mockResponseBody->getSize(), $response->getBody()->getSize());
     $this->assertSame(1, count(json_decode($response->getBody(true))->data));
 }