function ContainerTest::testGetForConfigurator

Same name and namespace in other branches
  1. 8.9.x 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()
  3. 11.x 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

Class

ContainerTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Component%21DependencyInjection%21Container.php/class/Container/9" title="Provides a container optimized for Drupal&#039;s needs." class="local">\Drupal\Component\DependencyInjection\Container</a> @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.');
}

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