YamlFileLoaderTest.php

Same filename and directory in other branches
  1. 9 core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
  2. 10 core/tests/Drupal/Tests/Core/DependencyInjection/YamlFileLoaderTest.php
  3. 11.x 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 @group DependencyInjection

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