public function testThrowsAndReleasesWhenErrorDuringCompleteEvent() { Server::flush(); Server::enqueue("HTTP/1.1 500 Internal Server Error\r\nContent-Length: 0\r\n\r\n"); $request = new Request('GET', Server::$url); $request->getEmitter()->on('complete', function (CompleteEvent $e) { throw new RequestException('foo', $e->getRequest()); }); $t = new Transaction(new Client(), $request); $a = new MultiAdapter(new MessageFactory()); try { $a->send($t); $this->fail('Did not throw'); } catch (RequestException $e) { $this->assertSame($request, $e->getRequest()); } }
public function testRewindsStreamOnComplete() { Server::flush(); Server::enqueue("HTTP/1.1 200 OK\r\nFoo: bar\r\nContent-Length: 4\r\n\r\ntest"); $t = new Transaction(new Client(), new Request('GET', Server::$url)); $a = new MultiAdapter(new MessageFactory()); $response = $a->send($t); $this->assertEquals('test', $response->getBody()->read(4)); }