annotate core/tests/Drupal/Tests/Component/Discovery/YamlDiscoveryTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 4c8ae668cc8c
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Tests\Component\Discovery;
Chris@0 4
Chris@0 5 use Drupal\Component\Discovery\YamlDiscovery;
Chris@0 6 use Drupal\Component\FileCache\FileCacheFactory;
Chris@0 7 use org\bovigo\vfs\vfsStream;
Chris@0 8 use org\bovigo\vfs\vfsStreamWrapper;
Chris@0 9 use org\bovigo\vfs\vfsStreamDirectory;
Chris@0 10 use PHPUnit\Framework\TestCase;
Chris@0 11
Chris@0 12 /**
Chris@0 13 * YamlDiscovery component unit tests.
Chris@0 14 *
Chris@0 15 * @group Discovery
Chris@0 16 */
Chris@0 17 class YamlDiscoveryTest extends TestCase {
Chris@0 18
Chris@0 19 /**
Chris@0 20 * {@inheritdoc}
Chris@0 21 */
Chris@0 22 protected function setUp() {
Chris@0 23 // Ensure that FileCacheFactory has a prefix.
Chris@0 24 FileCacheFactory::setPrefix('prefix');
Chris@0 25 }
Chris@0 26
Chris@0 27 /**
Chris@0 28 * Tests the YAML file discovery.
Chris@0 29 */
Chris@0 30 public function testDiscovery() {
Chris@0 31 vfsStreamWrapper::register();
Chris@0 32 $root = new vfsStreamDirectory('modules');
Chris@0 33 vfsStreamWrapper::setRoot($root);
Chris@0 34 $url = vfsStream::url('modules');
Chris@0 35
Chris@0 36 mkdir($url . '/test_1');
Chris@0 37 file_put_contents($url . '/test_1/test_1.test.yml', 'name: test');
Chris@0 38 file_put_contents($url . '/test_1/test_2.test.yml', 'name: test');
Chris@0 39
Chris@0 40 mkdir($url . '/test_2');
Chris@0 41 file_put_contents($url . '/test_2/test_3.test.yml', 'name: test');
Chris@0 42 // Write an empty YAML file.
Chris@0 43 file_put_contents($url . '/test_2/test_4.test.yml', '');
Chris@0 44
Chris@0 45 // Set up the directories to search.
Chris@0 46 $directories = [
Chris@0 47 'test_1' => $url . '/test_1',
Chris@0 48 'test_2' => $url . '/test_1',
Chris@0 49 'test_3' => $url . '/test_2',
Chris@0 50 'test_4' => $url . '/test_2',
Chris@0 51 ];
Chris@0 52
Chris@0 53 $discovery = new YamlDiscovery('test', $directories);
Chris@0 54 $data = $discovery->findAll();
Chris@0 55
Chris@0 56 $this->assertEquals(count($data), count($directories));
Chris@0 57 $this->assertArrayHasKey('test_1', $data);
Chris@0 58 $this->assertArrayHasKey('test_2', $data);
Chris@0 59 $this->assertArrayHasKey('test_3', $data);
Chris@0 60 $this->assertArrayHasKey('test_4', $data);
Chris@0 61
Chris@0 62 foreach (['test_1', 'test_2', 'test_3'] as $key) {
Chris@0 63 $this->assertArrayHasKey('name', $data[$key]);
Chris@0 64 $this->assertEquals($data[$key]['name'], 'test');
Chris@0 65 }
Chris@0 66
Chris@0 67 $this->assertSame([], $data['test_4']);
Chris@0 68 }
Chris@0 69
Chris@0 70 }