phpmyadmin/tests/unit/Container/ContainerBuilderTest.php
Maurício Meneghini Fauth 55d922c313
Add tests for app/services* files
Fixes error introduced by
https://github.com/phpmyadmin/phpmyadmin/pull/18625.

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
2024-03-09 17:02:07 -03:00

54 lines
1.8 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Tests\Container;
use PhpMyAdmin\Container\ContainerBuilder;
use PhpMyAdmin\DatabaseInterface;
use PhpMyAdmin\Tests\AbstractTestCase;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use function array_keys;
use function array_map;
use function array_merge;
#[CoversClass(ContainerBuilder::class)]
final class ContainerBuilderTest extends AbstractTestCase
{
public function testGetContainer(): void
{
ContainerBuilder::$container = null;
$container = ContainerBuilder::getContainer();
self::assertSame($container, ContainerBuilder::getContainer());
ContainerBuilder::$container = null;
self::assertNotSame($container, ContainerBuilder::getContainer());
ContainerBuilder::$container = null;
}
#[DataProvider('servicesProvider')]
public function testContainerEntries(string $service): void
{
$GLOBALS['lang'] = 'en';
DatabaseInterface::$instance = $this->createDatabaseInterface();
$container = ContainerBuilder::getContainer();
self::assertNotNull($container->get($service));
ContainerBuilder::$container = null;
}
/** @return array<int, array<int, string>> */
public static function servicesProvider(): array
{
/** @psalm-var array{services: array<string, mixed>} $services */
$services = include ROOT_PATH . 'app/services.php';
/** @psalm-var array{services: array<string, mixed>} $controllerServices */
$controllerServices = include ROOT_PATH . 'app/services_controllers.php';
return array_map(
static fn ($service) => [$service],
array_merge(array_keys($services['services']), array_keys($controllerServices['services'])),
);
}
}