<?php /* * This file is part of the NelmioApiDocBundle package. * * (c) Nelmio * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Nelmio\ApiDocBundle\Tests\Describer; use Nelmio\ApiDocBundle\Describer\RouteDescriber; use Nelmio\ApiDocBundle\RouteDescriber\RouteDescriberInterface; use Nelmio\ApiDocBundle\Util\ControllerReflector; use OpenApi\Annotations\OpenApi; use Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser; use Symfony\Component\DependencyInjection\Container; use Symfony\Component\Routing\Route; use Symfony\Component\Routing\RouteCollection; class RouteDescriberTest extends AbstractDescriberTest { private $routes; private $routeDescriber; public function testIgnoreWhenNoController() { $this->routes->add('foo', new Route('foo')); $this->routeDescriber->expects($this->never()) ->method('describe'); $this->assertEquals((new OpenApi([]))->toJson(), $this->getOpenApiDoc()->toJson()); } protected function setUp(): void { $this->routeDescriber = $this->createMock(RouteDescriberInterface::class); $this->routes = new RouteCollection(); $this->describer = new RouteDescriber( $this->routes, $this->createControllerReflector(), [$this->routeDescriber] ); } protected function createControllerReflector(): ControllerReflector { if (class_exists(ControllerNameParser::class)) { return new ControllerReflector( new Container(), $this->createMock(ControllerNameParser::class) ); } return new ControllerReflector(new Container()); } }