From f6f91562d9e7ac0edb4e892969dea1ed30c931af Mon Sep 17 00:00:00 2001 From: Guilhem N Date: Wed, 30 Nov 2016 16:08:49 +0100 Subject: [PATCH] Fix a type hint issue in RouteDescriber --- Describer/RouteDescriber.php | 2 +- Tests/Describer/RouteDescriberTest.php | 47 ++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Tests/Describer/RouteDescriberTest.php 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 ] + ); + } +}