getMockBuilder('React\Socket\ConnectorInterface')->getMock(); $connector->expects($this->once())->method('connect')->with('google.com:80')->will($this->returnValue($promise)); $loop = Factory::create(); $timeout = new TimeoutConnector($connector, 0.01, $loop); $timeout->connect('google.com:80')->then( $this->expectCallableNever(), $this->expectCallableOnce() ); $loop->run(); } public function testRejectsWhenConnectorRejects() { $promise = Promise\reject(new \RuntimeException()); $connector = $this->getMockBuilder('React\Socket\ConnectorInterface')->getMock(); $connector->expects($this->once())->method('connect')->with('google.com:80')->will($this->returnValue($promise)); $loop = Factory::create(); $timeout = new TimeoutConnector($connector, 5.0, $loop); $timeout->connect('google.com:80')->then( $this->expectCallableNever(), $this->expectCallableOnce() ); $loop->run(); } public function testResolvesWhenConnectorResolves() { $promise = Promise\resolve(); $connector = $this->getMockBuilder('React\Socket\ConnectorInterface')->getMock(); $connector->expects($this->once())->method('connect')->with('google.com:80')->will($this->returnValue($promise)); $loop = Factory::create(); $timeout = new TimeoutConnector($connector, 5.0, $loop); $timeout->connect('google.com:80')->then( $this->expectCallableOnce(), $this->expectCallableNever() ); $loop->run(); } public function testRejectsAndCancelsPendingPromiseOnTimeout() { $promise = new Promise\Promise(function () { }, $this->expectCallableOnce()); $connector = $this->getMockBuilder('React\Socket\ConnectorInterface')->getMock(); $connector->expects($this->once())->method('connect')->with('google.com:80')->will($this->returnValue($promise)); $loop = Factory::create(); $timeout = new TimeoutConnector($connector, 0.01, $loop); $timeout->connect('google.com:80')->then( $this->expectCallableNever(), $this->expectCallableOnce() ); $loop->run(); } public function testCancelsPendingPromiseOnCancel() { $promise = new Promise\Promise(function () { }, function () { throw new \Exception(); }); $connector = $this->getMockBuilder('React\Socket\ConnectorInterface')->getMock(); $connector->expects($this->once())->method('connect')->with('google.com:80')->will($this->returnValue($promise)); $loop = Factory::create(); $timeout = new TimeoutConnector($connector, 0.01, $loop); $out = $timeout->connect('google.com:80'); $out->cancel(); $out->then($this->expectCallableNever(), $this->expectCallableOnce()); } }