You are here

public function ContainerTest::testGetForConfigurator in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php \Drupal\Tests\Component\DependencyInjection\ContainerTest::testGetForConfigurator()
  2. 10 core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php \Drupal\Tests\Component\DependencyInjection\ContainerTest::testGetForConfigurator()

Tests that Container::get() for configurable services works.

@covers ::get @covers ::createService

File

core/tests/Drupal/Tests/Component/DependencyInjection/ContainerTest.php, line 516
Contains \Drupal\Tests\Component\DependencyInjection\ContainerTest.

Class

ContainerTest
@coversDefaultClass \Drupal\Component\DependencyInjection\Container @group DependencyInjection

Namespace

Drupal\Tests\Component\DependencyInjection

Code

public function testGetForConfigurator() {
  $container = $this->container;

  // Setup a configurator.
  $configurator = $this
    ->prophesize('\\Drupal\\Tests\\Component\\DependencyInjection\\MockConfiguratorInterface');
  $configurator
    ->configureService(Argument::type('object'))
    ->shouldBeCalled(1)
    ->will(function ($args) use ($container) {
    $args[0]
      ->setContainer($container);
  });
  $container
    ->set('configurator', $configurator
    ->reveal());

  // Test that the configurator worked.
  $service = $container
    ->get('configurable_service');
  $this
    ->assertSame($container, $service
    ->getContainer(), 'Container was injected via configurator.');
}