YamlFileLoaderTest.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace Drupal\Tests\Core\DependencyInjection;
  3. use Drupal\Component\FileCache\FileCacheFactory;
  4. use Drupal\Core\DependencyInjection\ContainerBuilder;
  5. use Drupal\Core\DependencyInjection\YamlFileLoader;
  6. use Drupal\Tests\UnitTestCase;
  7. use org\bovigo\vfs\vfsStream;
  8. /**
  9. * @coversDefaultClass \Drupal\Core\DependencyInjection\YamlFileLoader
  10. * @group DependencyInjection
  11. */
  12. class YamlFileLoaderTest extends UnitTestCase {
  13. /**
  14. * {@inheritdoc}
  15. */
  16. protected function setUp() {
  17. parent::setUp();
  18. FileCacheFactory::setPrefix('example');
  19. }
  20. public function testParseDefinitionsWithProvider() {
  21. $yml = <<<YAML
  22. services:
  23. example_service:
  24. class: \Drupal\Core\ExampleClass
  25. example_private_service:
  26. class: \Drupal\Core\ExampleClass
  27. public: false
  28. YAML;
  29. vfsStream::setup('drupal', NULL, [
  30. 'modules' => [
  31. 'example' => [
  32. 'example.yml' => $yml,
  33. ],
  34. ],
  35. ]);
  36. $builder = new ContainerBuilder();
  37. $yaml_file_loader = new YamlFileLoader($builder);
  38. $yaml_file_loader->load('vfs://drupal/modules/example/example.yml');
  39. $this->assertEquals(['_provider' => [['provider' => 'example']]], $builder->getDefinition('example_service')->getTags());
  40. $this->assertTrue($builder->getDefinition('example_service')->isPublic());
  41. $this->assertFalse($builder->getDefinition('example_private_service')->isPublic());
  42. $builder->compile();
  43. $this->assertTrue($builder->has('example_service'));
  44. $this->assertFalse($builder->has('example_private_service'));
  45. }
  46. }