function it_can_get_a_route_for_a_request(PsrRequest $request, Uri $uri, RouteBuilder $routeBuilder, Route $route) { $request->getMethod()->willReturn('GET'); $request->getUri()->willReturn($uri); $uri->getPath()->willReturn('/'); $route->getPath()->willReturn('/'); $route->getHttpMethod()->willReturn('GET'); $routeBuilder->buildRoutesFromConfig(Argument::type('\\ConfigTree\\Tree\\ConfigTree'))->willReturn([$route]); $this->getRouteForRequest($request)->shouldReturn($route); }
/** * @param PsrRequest $request * @return Route */ public function getRouteForRequest(PsrRequest $request) { $method = $request->getMethod(); $path = $request->getUri()->getPath(); $routes = $this->routeBuilder->buildRoutesFromConfig($this->routingConfig); foreach ($routes as $route) { if ($route->getPath() === $path && $route->getHttpMethod() === $method) { return $route; } } }