YamlFileLoaderTest.php

Same filename and directory in other branches
  1. 11.x core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
  2. 10 core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
  3. 9 core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php

Namespace

Drupal\Tests\Core\DependencyInjection

File

core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php

View source
<?php

namespace Drupal\Tests\Core\DependencyInjection;

use Drupal\Component\FileCache\FileCacheFactory;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\DependencyInjection\YamlFileLoader;
use Drupal\Tests\UnitTestCase;
use org\bovigo\vfs\vfsStream;

/**
 * @coversDefaultClass \Drupal\Core\DependencyInjection\YamlFileLoader
 * @group DependencyInjection
 */
class YamlFileLoaderTest extends UnitTestCase {
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() {
    parent::setUp();
    FileCacheFactory::setPrefix('example');
  }
  public function testParseDefinitionsWithProvider() {
    $yml = <<<YAML
    services:
      example_service:
        class: \\Drupal\\Core\\ExampleClass
      example_private_service:
        class: \\Drupal\\Core\\ExampleClass
        public: false
    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')
      ->getTags());
    $this->assertTrue($builder->getDefinition('example_service')
      ->isPublic());
    $this->assertFalse($builder->getDefinition('example_private_service')
      ->isPublic());
    $builder->compile();
    $this->assertTrue($builder->has('example_service'));
    $this->assertFalse($builder->has('example_private_service'));
  }

}

Classes

Title Deprecated Summary
YamlFileLoaderTest @coversDefaultClass \Drupal\Core\DependencyInjection\YamlFileLoader[[api-linebreak]] @group DependencyInjection

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