/** * */ 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; }
/** * Tests that the services not asked are not instantiated */ public function testCallWithServicesNotCalled() { $pattern = 'pattern'; $controller = function () { return func_get_args(); }; $call = 0; $services = new Container(); $services['service1'] = function () use(&$call) { return ++$call; }; $route = new Route(new RoutePattern($pattern), $controller); $route->call($services); $this->assertSame(1, $services['service1']); ///service1 is called for the first time }