diff --git a/tests/unit/Http/RouterTest.php b/tests/unit/Http/RouterTest.php index 8656dd3..56471ce 100644 --- a/tests/unit/Http/RouterTest.php +++ b/tests/unit/Http/RouterTest.php @@ -1,7 +1,9 @@ _router->onError($this->_conn, $e); } + + public function testRouterGeneratesRouteParameters() + { + /** @var $controller WsServerInterface */ + $controller = $this->getMockBuilder('\Ratchet\WebSocket\WsServer')->disableOriginalConstructor()->getMock(); + /** @var $matcher UrlMatcherInterface */ + $this->_matcher->expects($this->any())->method('match')->will( + $this->returnValue(array('_controller' => $controller, 'foo' => 'bar', 'baz' => 'qux')) + ); + $conn = $this->getMock('Ratchet\Mock\Connection'); + + $request = $this->getMock('Guzzle\Http\Message\Request', array('getPath'), ['GET', 'ws://random.url'], '', false); + $request->expects($this->any())->method('getPath')->will($this->returnValue('ws://doesnt.matter/')); + + $request->setHeaderFactory($this->getMock('Guzzle\Http\Message\Header\HeaderFactoryInterface')); + $request->setUrl('ws://doesnt.matter/'); + + $router = new Router($this->_matcher); + + $router->onOpen($conn, $request); + + $this->assertEquals(array('foo' => 'bar', 'baz' => 'qux'), $request->getQuery()->getAll()); + } }