/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/DependencyInjection/Tests/Compiler/ExtensionCompilerPassTest.php
78 строк
2 KB
Nicolas Grekas
Use typed properties in tests as much as possible
25 июл 2023, 11:53
25 июл 2023, 11:53
4ad506b
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\DependencyInjection\Tests\Compiler; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Compiler\ExtensionCompilerPass; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Extension\Extension; /** * @author Wouter J <wouter@wouterj.nl> */ class ExtensionCompilerPassTest extends TestCase { private ContainerBuilder $container; private ExtensionCompilerPass $pass; protected function setUp(): void { $this->container = new ContainerBuilder(); $this->pass = new ExtensionCompilerPass(); } public function testProcess() { $extension1 = new CompilerPassExtension('extension1'); $extension2 = new DummyExtension('extension2'); $extension3 = new DummyExtension('extension3'); $extension4 = new CompilerPassExtension('extension4'); $this->container->registerExtension($extension1); $this->container->registerExtension($extension2); $this->container->registerExtension($extension3); $this->container->registerExtension($extension4); $this->pass->process($this->container); $this->assertTrue($this->container->hasDefinition('extension1')); $this->assertFalse($this->container->hasDefinition('extension2')); $this->assertFalse($this->container->hasDefinition('extension3')); $this->assertTrue($this->container->hasDefinition('extension4')); } } class DummyExtension extends Extension { public function __construct(private readonly string $alias) { } public function getAlias(): string { return $this->alias; } public function load(array $configs, ContainerBuilder $container): void { } public function process(ContainerBuilder $container): void { $container->register($this->alias); } } class CompilerPassExtension extends DummyExtension implements CompilerPassInterface { }