/** * @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)); }