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 }
|