Routes config: Added test to ensure that routes are cacheable in production

This commit is contained in:
Igor Scheller 2019-09-06 17:30:04 +02:00
parent a02f5e61be
commit 64c4743f57
1 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,43 @@
<?php
namespace Engelsystem\Test\Unit\Config;
use FastRoute\RouteCollector;
use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
class RoutesFileTest extends TestCase
{
/**
* @doesNotPerformAssertions
*/
public function testLoadRoutes()
{
/** @var RouteCollector|MockObject $route */
$route = $this->getMockBuilder(RouteCollector::class)
->disableOriginalConstructor()
->onlyMethods(['addRoute'])
->getMock();
$this->doesNotPerformAssertions();
/** @see RouteCollector::addRoute */
$route->expects($this->any())
->method('addRoute')
->willReturnCallback(function ($httpMethod, $route, $handler) {
/**
* @param string|string[] $httpMethod
* @param string $route
* @param mixed $handler
*/
if (is_string($handler) || (is_array($handler) && is_string($handler[0]))) {
return;
}
$this->fail(
sprintf('The route "%s %s" is not cacheable', implode(',', (array)$httpMethod), $route)
);
});
require __DIR__ . '/../../../config/routes.php';
}
}