3 namespace Drupal\Tests\Core\DependencyInjection;
5 use Drupal\Component\FileCache\FileCacheFactory;
6 use Drupal\Core\DependencyInjection\ContainerBuilder;
7 use Drupal\Core\DependencyInjection\YamlFileLoader;
8 use Drupal\Tests\UnitTestCase;
9 use org\bovigo\vfs\vfsStream;
12 * @coversDefaultClass \Drupal\Core\DependencyInjection\YamlFileLoader
13 * @group DependencyInjection
15 class YamlFileLoaderTest extends UnitTestCase {
20 protected function setUp() {
23 FileCacheFactory::setPrefix('example');
26 public function testParseDefinitionsWithProvider() {
30 class: \Drupal\Core\ExampleClass
31 example_private_service:
32 class: \Drupal\Core\ExampleClass
36 vfsStream::setup('drupal', NULL, [
37 'modules/example/example.yml' => $yml,
40 $builder = new ContainerBuilder();
41 $yaml_file_loader = new YamlFileLoader($builder);
42 $yaml_file_loader->load('vfs://drupal/modules/example/example.yml');
44 $this->assertEquals(['_provider' => [['provider' => 'example']]], $builder->getDefinition('example_service')->getTags());
45 $this->assertTrue($builder->getDefinition('example_service')->isPublic());
46 $this->assertFalse($builder->getDefinition('example_private_service')->isPublic());
48 $this->assertTrue($builder->has('example_service'));
49 $this->assertFalse($builder->has('example_private_service'));