예제 #1
0
 public function testSendsToNewBodyWhenNot2xxResponse()
 {
     $body = puzzle_stream_Stream::factory();
     $request = new puzzle_message_Request('GET', 'http://httbin.org');
     $t = new puzzle_adapter_Transaction(new puzzle_Client(), $request);
     $m = new puzzle_adapter_curl_RequestMediator($t, new puzzle_message_MessageFactory());
     $m->setResponseBody($body);
     $this->assertEquals(27, $m->receiveResponseHeader(null, "HTTP/1.1 304 Not Modified\r\n"));
     $this->assertEquals(2, $m->receiveResponseHeader(null, "\r\n"));
     $this->assertEquals(304, $t->getResponse()->getStatusCode());
     $m->writeResponseBody(null, 'foo');
     $this->assertEquals('', (string) $body);
     $this->assertEquals('foo', (string) $t->getResponse()->getBody());
 }
예제 #2
0
 private function add_save_to(puzzle_message_RequestInterface $request, puzzle_adapter_curl_RequestMediator $mediator, $value)
 {
     $mediator->setResponseBody(is_string($value) ? new puzzle_stream_LazyOpenStream($value, 'w') : puzzle_stream_Stream::factory($value));
 }