diff --git a/Routing/FilteredRouteCollectionBuilder.php b/Routing/FilteredRouteCollectionBuilder.php index 06ef512..19e4cef 100644 --- a/Routing/FilteredRouteCollectionBuilder.php +++ b/Routing/FilteredRouteCollectionBuilder.php @@ -38,11 +38,11 @@ final class FilteredRouteCollectionBuilder private function match(Route $route): bool { foreach ($this->pathPatterns as $pathPattern) { - if (!preg_match('{'.$pathPattern.'}', $route->getPath())) { - return false; + if (preg_match('{'.$pathPattern.'}', $route->getPath())) { + return true; } } - return true; + return false; } } diff --git a/Tests/Routing/FilteredRouteCollectionBuilderTest.php b/Tests/Routing/FilteredRouteCollectionBuilderTest.php new file mode 100644 index 0000000..4b57b53 --- /dev/null +++ b/Tests/Routing/FilteredRouteCollectionBuilderTest.php @@ -0,0 +1,43 @@ +add('r1', new Route('/api/bar/action1')); + $routes->add('r2', new Route('/api/foo/action1')); + $routes->add('r3', new Route('/api/foo/action2')); + $routes->add('r4', new Route('/api/demo')); + $routes->add('r5', new Route('/_profiler/test/test')); + + $routeBuilder = new FilteredRouteCollectionBuilder($pathPattern); + $filteredRoutes = $routeBuilder->filter($routes); + + $this->assertCount(3, $filteredRoutes); + } +}