public function StackedKernelPassTest::testProcessWithStackedKernel in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/StackedKernelPassTest.php \Drupal\Tests\Core\DependencyInjection\Compiler\StackedKernelPassTest::testProcessWithStackedKernel()
@covers ::process
File
- core/
tests/ Drupal/ Tests/ Core/ DependencyInjection/ Compiler/ StackedKernelPassTest.php, line 39
Class
- StackedKernelPassTest
- @coversDefaultClass \Drupal\Core\DependencyInjection\Compiler\StackedKernelPass @group DependencyInjection
Namespace
Drupal\Tests\Core\DependencyInjection\CompilerCode
public function testProcessWithStackedKernel() {
$stacked_kernel = new Definition('Stack\\StackedHttpKernel');
$stacked_kernel
->setPublic(TRUE);
$this->containerBuilder
->setDefinition('http_kernel', $stacked_kernel);
$this->containerBuilder
->setDefinition('http_kernel.basic', $this
->createMiddlewareServiceDefinition(FALSE, 0));
$this->containerBuilder
->setDefinition('http_kernel.three', $this
->createMiddlewareServiceDefinition());
$this->containerBuilder
->setDefinition('http_kernel.one', $this
->createMiddlewareServiceDefinition(TRUE, 10));
$this->containerBuilder
->setDefinition('http_kernel.two', $this
->createMiddlewareServiceDefinition(TRUE, 5));
$this->stackedKernelPass
->process($this->containerBuilder);
$stacked_kernel_args = $this->containerBuilder
->getDefinition('http_kernel')
->getArguments();
// Check the stacked kernel args.
$this
->assertSame('http_kernel.one', (string) $stacked_kernel_args[0]);
$this
->assertCount(4, $stacked_kernel_args[1]);
$this
->assertSame('http_kernel.one', (string) $stacked_kernel_args[1][0]);
$this
->assertSame('http_kernel.two', (string) $stacked_kernel_args[1][1]);
$this
->assertSame('http_kernel.three', (string) $stacked_kernel_args[1][2]);
$this
->assertSame('http_kernel.basic', (string) $stacked_kernel_args[1][3]);
// Check the modified definitions.
$definition = $this->containerBuilder
->getDefinition('http_kernel.one');
$args = $definition
->getArguments();
$this
->assertSame('http_kernel.two', (string) $args[0]);
$this
->assertSame('test', $args[1]);
$definition = $this->containerBuilder
->getDefinition('http_kernel.two');
$args = $definition
->getArguments();
$this
->assertSame('http_kernel.three', (string) $args[0]);
$this
->assertSame('test', $args[1]);
$definition = $this->containerBuilder
->getDefinition('http_kernel.three');
$args = $definition
->getArguments();
$this
->assertSame('http_kernel.basic', (string) $args[0]);
$this
->assertSame('test', $args[1]);
}