public function testGetMock()
 {
     $clientMock = GuzzleFactory::createClientMock([new Response(200, ['content-type' => 'application/json', 'content-length' => 26, 'canaltp' => 42]), new Response(200, [], '{"lines":"expected-lines"}'), new Response(404, ['Content-Length' => 0])]);
     $this->assertInstanceOf('CanalTP\\AbstractGuzzle\\Guzzle', $clientMock);
     $firstCall = $clientMock->send(new Request('get', 'github'));
     $firstCallHeaders = $firstCall->getHeaders();
     $this->assertInstanceOf('GuzzleHttp\\Psr7\\Response', $firstCall);
     $this->assertEquals(200, $firstCall->getStatusCode());
     $this->assertEquals(42, $firstCallHeaders['canaltp'][0]);
     $this->assertEquals('application/json', $firstCallHeaders['content-type'][0]);
     $secondCall = $clientMock->send(new Request('post', 'packagist'));
     $this->assertEquals('{"lines":"expected-lines"}', $secondCall->getBody()->getContents());
     // since guzzle 6, exception will be throw in case of http errors
     try {
         $thirdCall = $clientMock->send(new Request('get', 'php/404'));
         $this->assertEquals(404, $thirdCall->getStatusCode());
     } catch (ClientException $e) {
         $this->assertEquals(404, $e->getResponse()->getStatusCode());
     }
 }
 public function testClientMockForVersion6()
 {
     $clientMock = GuzzleFactory::createClientMock([]);
     $this->assertInstanceOf('CanalTP\\AbstractGuzzle\\Version\\Guzzle6', $clientMock);
 }