/** * */ public function testGetPattern() { $pattern = 'pattern'; $controller = function () { }; $route = new Route(new RoutePattern($pattern), $controller); $this->assertSame($pattern, $route->getPattern()->getUri()); }
/** * */ public function testFind() { $finderResult = 'finder_result'; $request = new RequestMock(); $request->setRequestUri('uri'); $route1 = new Route(new RoutePattern('pattern'), function () { }); $route1->getPattern()->setMethod('post'); $route2 = new Route(new RoutePattern('pattern'), function () { }); $route3 = new Route(new RoutePattern('pattern'), function () { }); $route3->getPattern()->setContentType('application/json'); $routes = [$route1, $route2, $route3]; $router = new Router($this->getRouteFinder($finderResult, $request, $routes)); $router->addRoute($route1); $router->addRoute($route2); $router->addRoute($route3); $this->assertSame($finderResult, $router->find($request, new \ArrayObject())); }
/** * @param Route $route * @return bool */ private function matchFilters(Route $route) { foreach ($route->getPattern()->getFilters() as $filter) { if (!$this->callFilter($filter)) { return false; } } return true; }