function StackedKernelPassTest::testProcessWithStackedKernel

Same name in other branches
  1. 9 core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/StackedKernelPassTest.php \Drupal\Tests\Core\DependencyInjection\Compiler\StackedKernelPassTest::testProcessWithStackedKernel()
  2. 8.9.x core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/StackedKernelPassTest.php \Drupal\Tests\Core\DependencyInjection\Compiler\StackedKernelPassTest::testProcessWithStackedKernel()
  3. 11.x 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 48

Class

StackedKernelPassTest
@coversDefaultClass \Drupal\Core\DependencyInjection\Compiler\StackedKernelPass @group DependencyInjection

Namespace

Drupal\Tests\Core\DependencyInjection\Compiler

Code

public function testProcessWithStackedKernel() : void {
    $stacked_kernel = new Definition(StackedHttpKernel::class);
    $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]);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.