예제 #1
0
 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);
 }
예제 #2
0
 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);
 }