/** * 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; }
/** * Tests the checkStatusMessages() method. * @covers \BluePsyduck\MultiCurl\Manager::checkStatusMessages */ public function testCheckStatusMessages() { $handle1 = 'abc'; $handle2 = 'def'; $response = new Response(); $response->setContent('ghi'); /* @var $request \BluePsyduck\MultiCurl\Entity\Request|\PHPUnit_Framework_MockObject_MockObject */ $request = $this->getMockBuilder('BluePsyduck\\MultiCurl\\Entity\\Request')->setMethods(array('setResponse'))->getMock(); $request->expects($this->once())->method('setResponse')->with($response); /* @var $multiCurl \BluePsyduck\MultiCurl\Wrapper\MultiCurl|\PHPUnit_Framework_MockObject_MockObject */ $multiCurl = $this->getMockBuilder('BluePsyduck\\MultiCurl\\Wrapper\\MultiCurl')->setMethods(array('readInfo'))->getMock(); $multiCurl->expects($this->at(0))->method('readInfo')->willReturn(array('handle' => $handle1, 'result' => 42)); $multiCurl->expects($this->at(1))->method('readInfo')->willReturn(array('handle' => $handle2, 'result' => 1337)); $multiCurl->expects($this->at(2))->method('readInfo')->willReturn(false); /* @var $manager \BluePsyduck\MultiCurl\Manager|\PHPUnit_Framework_MockObject_MockObject */ $manager = $this->getMockBuilder('BluePsyduck\\MultiCurl\\Manager')->setMethods(array('findRequestToCurlHandle', 'createResponse'))->getMock(); $manager->expects($this->at(0))->method('findRequestToCurlHandle')->with($handle1)->willReturn(null); $manager->expects($this->at(1))->method('findRequestToCurlHandle')->with($handle2)->willReturn($request); $manager->expects($this->at(2))->method('createResponse')->with(1337, $request)->willReturn($response); $this->injectProperty($manager, 'multiCurl', $multiCurl); $result = $this->invokeMethod($manager, 'checkStatusMessages'); $this->assertEquals($manager, $result); }
/** * Tests the setContent() method. * @covers \BluePsyduck\MultiCurl\Entity\Response::setContent */ public function testSetContent() { $expected = 'abc'; $response = new Response(); $result = $response->setContent($expected); $this->assertEquals($response, $result); $this->assertPropertyEquals($expected, $response, 'content'); }