prophesize(RouteProviderInterface::class); $route_collection = new RouteCollection(); $route = new Route('/user/{user}'); $route->setOption('compiler_class', RouteCompiler::class); $route_collection->add('user_view', $route); $route = new Route('/user/login'); $route->setOption('compiler_class', RouteCompiler::class); $route_collection->add('user_login', $route); $route_provider->getRouteCollectionForRequest(Argument::any()) ->willReturn($route_collection); $url_generator = $this->prophesize(UrlGeneratorInterface::class); $current_path_stack = $this->prophesize(CurrentPathStack::class); $router = new Router($route_provider->reveal(), $current_path_stack->reveal(), $url_generator->reveal()); $request_context = $this->prophesize(RequestContext::class); $request_context->getScheme()->willReturn('http'); $router->setContext($request_context->reveal()); $current_path_stack->getPath(Argument::any())->willReturn('/user/1'); $result = $router->match('/user/1'); $this->assertEquals('user_view', $result['_route']); $current_path_stack->getPath(Argument::any())->willReturn('/user/login'); $result = $router->match('/user/login'); $this->assertEquals('user_login', $result['_route']); } }