You are here

public function YamlFileLoaderTest::testParseDefinitionsWithProvider in Drupal 10

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php \Drupal\Tests\Core\DependencyInjection\YamlFileLoaderTest::testParseDefinitionsWithProvider()
  2. 9 core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php \Drupal\Tests\Core\DependencyInjection\YamlFileLoaderTest::testParseDefinitionsWithProvider()

File

core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php, line 26

Class

YamlFileLoaderTest
@coversDefaultClass \Drupal\Core\DependencyInjection\YamlFileLoader @group DependencyInjection

Namespace

Drupal\Tests\Core\DependencyInjection

Code

public function testParseDefinitionsWithProvider() {
  $yml = <<<YAML
services:
  example_service_1:
    class: \\Drupal\\Core\\ExampleClass
  example_service_2: '@example_service_1'
  example_private_service:
    class: \\Drupal\\Core\\ExampleClass
    public: false
  Drupal\\Core\\ExampleClass: ~
YAML;
  vfsStream::setup('drupal', NULL, [
    'modules' => [
      'example' => [
        'example.yml' => $yml,
      ],
    ],
  ]);
  $builder = new ContainerBuilder();
  $yaml_file_loader = new YamlFileLoader($builder);
  $yaml_file_loader
    ->load('vfs://drupal/modules/example/example.yml');
  $this
    ->assertEquals([
    '_provider' => [
      [
        'provider' => 'example',
      ],
    ],
  ], $builder
    ->getDefinition('example_service_1')
    ->getTags());
  $this
    ->assertEquals('example_service_1', $builder
    ->getAlias('example_service_2')
    ->__toString());
  $this
    ->assertTrue($builder
    ->getDefinition('example_service_1')
    ->isPublic());
  $this
    ->assertFalse($builder
    ->getDefinition('example_private_service')
    ->isPublic());
  $builder
    ->compile();
  $this
    ->assertTrue($builder
    ->has('example_service_1'));
  $this
    ->assertFalse($builder
    ->has('example_private_service'));
  $this
    ->assertTrue($builder
    ->has('Drupal\\Core\\ExampleClass'));
  $this
    ->assertSame('Drupal\\Core\\ExampleClass', $builder
    ->getDefinition('Drupal\\Core\\ExampleClass')
    ->getClass());
}