function ProxyServicesPassTest::testContainerWithLazyServices

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/ProxyServicesPassTest.php \Drupal\Tests\Core\DependencyInjection\Compiler\ProxyServicesPassTest::testContainerWithLazyServices()
  2. 10 core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/ProxyServicesPassTest.php \Drupal\Tests\Core\DependencyInjection\Compiler\ProxyServicesPassTest::testContainerWithLazyServices()
  3. 9 core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/ProxyServicesPassTest.php \Drupal\Tests\Core\DependencyInjection\Compiler\ProxyServicesPassTest::testContainerWithLazyServices()
  4. 8.9.x core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/ProxyServicesPassTest.php \Drupal\Tests\Core\DependencyInjection\Compiler\ProxyServicesPassTest::testContainerWithLazyServices()

Tests container with lazy services.

@legacy-covers ::process

File

core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/ProxyServicesPassTest.php, line 58

Class

ProxyServicesPassTest
Tests Drupal\Core\DependencyInjection\Compiler\ProxyServicesPass.

Namespace

Drupal\Tests\Core\DependencyInjection\Compiler

Code

public function testContainerWithLazyServices() : void {
  $container = new ContainerBuilder();
  $container->register('lock', 'Drupal\\Core\\Lock\\DatabaseLockBackend')
    ->setLazy(TRUE);
  $this->proxyServicesPass
    ->process($container);
  $this->assertCount(3, $container->getDefinitions());
  $non_proxy_definition = $container->getDefinition('drupal.proxy_original_service.lock');
  $this->assertEquals('Drupal\\Core\\Lock\\DatabaseLockBackend', $non_proxy_definition->getClass());
  $this->assertFalse($non_proxy_definition->isLazy());
  $this->assertTrue($non_proxy_definition->isPublic());
  $this->assertEquals('Drupal\\Core\\ProxyClass\\Lock\\DatabaseLockBackend', $container->getDefinition('lock')
    ->getClass());
}

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