示例#1
0
 /** @test */
 public function requestShouldEmitErrorIfConnectionEmitsError()
 {
     $requestData = new RequestData('GET', 'http://www.example.com');
     $request = new Request($this->loop, $this->connector, $requestData);
     $this->successfulConnectionMock();
     $handler = $this->createCallableMock();
     $handler->expects($this->once())->method('__invoke')->with($this->isInstanceOf('Exception'), $this->isInstanceOf('React\\HttpClient\\Request'));
     $request->on('error', $handler);
     $handler = $this->createCallableMock();
     $handler->expects($this->once())->method('__invoke')->with($this->isInstanceOf('Exception'), null, $this->isInstanceOf('React\\HttpClient\\Request'));
     $request->on('end', $handler);
     $request->on('close', $this->expectCallableNever());
     $request->end();
     $request->handleError(new \Exception('test'));
 }
示例#2
0
 /**
  * @test
  * @expectedException Exception
  * @expectedExceptionMessage something failed
  */
 public function requestDoesNotHideErrors()
 {
     $requestData = new RequestData('GET', 'http://www.example.com');
     $request = new Request($this->connector, $requestData);
     $this->rejectedConnectionMock();
     $request->on('error', function () {
         throw new \Exception('something failed');
     });
     $request->end();
 }
示例#3
0
 /** @test */
 public function requestShouldEmitErrorIfConnectionEmitsError()
 {
     $guzzleRequest = new GuzzleRequest('GET', 'http://www.example.com');
     $request = new Request($this->loop, $this->connectionManager, $guzzleRequest);
     $stream = $this->stream;
     $this->connectionManager->expects($this->once())->method('getConnection')->with($this->anything(), 'www.example.com', 80)->will($this->returnCallback(function ($cb) use($stream) {
         $cb($stream);
     }));
     $handler = $this->createCallableMock();
     $handler->expects($this->once())->method('__invoke')->with($this->isInstanceOf('Exception'), $this->isInstanceOf('React\\HttpClient\\Request'));
     $request->on('error', $handler);
     $handler = $this->createCallableMock();
     $handler->expects($this->once())->method('__invoke')->with($this->isInstanceOf('Exception'), null, $this->isInstanceOf('React\\HttpClient\\Request'));
     $request->on('end', $handler);
     $request->on('close', $this->expectCallableNever());
     $request->end();
     $request->handleError(new \Exception('test'));
 }
 /** @test */
 public function requestShouldRemoveAllListenerAfterClosed()
 {
     $requestData = new RequestData('GET', 'http://www.example.com');
     $request = new Request($this->connector, $requestData);
     $request->on('end', function () {
     });
     $this->assertCount(1, $request->listeners('end'));
     $request->close();
     $this->assertCount(0, $request->listeners('end'));
 }
 /**
  * @param HttpRequest $request
  */
 protected function setupListeners(HttpRequest $request)
 {
     $request->on('headers-written', function () {
         $this->onHeadersWritten();
     });
     $request->on('drain', function () {
         $this->progress->onSent();
     });
     $request->on('response', function (HttpResponse $response) use($request) {
         $this->onResponse($response, $request);
     });
     $request->on('error', function ($error) {
         $this->onError($error);
     });
     $request->on('end', function () {
         $this->onEnd();
     });
 }