diff --git a/Describer/RouteDescriber.php b/Describer/RouteDescriber.php index 775dd7a..76c49d0 100644 --- a/Describer/RouteDescriber.php +++ b/Describer/RouteDescriber.php @@ -48,7 +48,7 @@ final class RouteDescriber implements DescriberInterface foreach ($this->routeCollection->all() as $route) { // if able to resolve the controller - if ($method = $this->getReflectionMethod($route->getDefault('_controller'))) { + if ($method = $this->getReflectionMethod($route->getDefault('_controller') ?? '')) { // Extract as many informations as possible about this route foreach ($this->routeDescribers as $describer) { $describer->describe($api, $route, $method); diff --git a/Tests/Describer/RouteDescriberTest.php b/Tests/Describer/RouteDescriberTest.php new file mode 100644 index 0000000..bb97448 --- /dev/null +++ b/Tests/Describer/RouteDescriberTest.php @@ -0,0 +1,47 @@ +routes->add('foo', new Route('foo')); + $this->routeDescriber->expects($this->never()) + ->method('describe'); + + $this->assertEquals((new Swagger())->toArray(), $this->getSwaggerDoc()->toArray()); + } + + protected function setUp() + { + $this->routeDescriber = $this->createMock(RouteDescriberInterface::class); + $this->routes = new RouteCollection(); + $this->describer = new RouteDescriber( + new Container(), + $this->routes, + $this->createMock(ControllerNameParser::class), + [ $this->routeDescriber ] + ); + } +}