public function test_filter_gets_invoked() { $routes = [new Route([HttpRequestMethod::GET], 'foo', 'handler')]; $filter = new RouteFilter('foo', function () { return true; }); $matcher = new RoutesMatcher(); $matcher->getFiltersMatcher()->addFilter($filter); $route = $matcher->match($routes, HttpRequestMethod::GET, new Url('foo')); $this->assertNotNull($route); $matcher->getFiltersMatcher()->enableFilters(['foo']); $route = $matcher->match($routes, HttpRequestMethod::GET, new Url('foo')); $this->assertNotNull($route); $filter = new RouteFilter('foo', function () { return false; }); $matcher->getFiltersMatcher()->addFilter($filter); $route = $matcher->match($routes, HttpRequestMethod::GET, new Url('foo')); $this->assertNotNull($route); $matcher->getFiltersMatcher()->enableFilters(['foo']); $route = $matcher->match($routes, HttpRequestMethod::GET, new Url('foo')); $this->assertNull($route); }
public function test_get_and_set_url_matcher() { $matcher = new RoutesMatcher(); $this->assertTrue($matcher->getUrlMatcher() instanceof IUrlMatcher); $urlMatcher = new UrlMatcher(); $matcher->setUrlMatcher($urlMatcher); $this->assertTrue($matcher->getUrlMatcher() === $urlMatcher); }