Ejemplo n.º 1
0
 /**
  * Tests the createResponse() method.
  * @param int $statusCode The status code to use.
  * @param \BluePsyduck\MultiCurl\Entity\Request $request The request to use.
  * @param bool $expectHydrateResponse Whether to expect hydrateResponse() to be called.
  * @param int $expectedErrorCode The expected status code.
  * @param string $expectedErrorMessage The expected error message.
  * @covers \BluePsyduck\MultiCurl\Manager::createResponse
  * @dataProvider provideCreateResponse
  */
 public function testCreateResponse($statusCode, $request, $expectHydrateResponse, $expectedErrorCode, $expectedErrorMessage)
 {
     /* @var $multiCurl \BluePsyduck\MultiCurl\Wrapper\MultiCurl|\PHPUnit_Framework_MockObject_MockObject */
     $multiCurl = $this->getMockBuilder('BluePsyduck\\MultiCurl\\Wrapper\\MultiCurl')->setMethods(array('removeCurl'))->getMock();
     $multiCurl->expects($this->once())->method('removeCurl')->with($request->getCurl());
     /* @var $manager \BluePsyduck\MultiCurl\Manager|\PHPUnit_Framework_MockObject_MockObject */
     $manager = $this->getMockBuilder('BluePsyduck\\MultiCurl\\Manager')->setMethods(array('hydrateResponse'))->getMock();
     $manager->expects($expectHydrateResponse ? $this->once() : $this->never())->method('hydrateResponse')->with($this->isInstanceOf('BluePsyduck\\MultiCurl\\Entity\\Response'), $request);
     $this->injectProperty($manager, 'multiCurl', $multiCurl);
     $result = $this->invokeMethod($manager, 'createResponse', array($statusCode, $request));
     $this->assertInstanceOf('BluePsyduck\\MultiCurl\\Entity\\Response', $result);
     /* @var \BluePsyduck\MultiCurl\Entity\Response $result */
     $this->assertEquals($expectedErrorCode, $result->getErrorCode());
     $this->assertEquals($expectedErrorMessage, $result->getErrorMessage());
 }
Ejemplo n.º 2
0
 /**
  * Hydrates the data from the executed request into the response instance.
  * @param \BluePsyduck\MultiCurl\Entity\Response $response
  * @param \BluePsyduck\MultiCurl\Entity\Request $request
  * @return $this
  */
 protected function hydrateResponse(Response $response, Request $request)
 {
     $curl = $request->getCurl();
     $headerSize = $curl->getInfo(CURLINFO_HEADER_SIZE);
     $rawContent = $this->multiCurl->getContent($curl);
     $response->setStatusCode($curl->getInfo(CURLINFO_HTTP_CODE))->setHeaders($this->parseHeaders(substr($rawContent, 0, $headerSize)))->setContent(substr($rawContent, $headerSize));
     return $this;
 }