Upgraded drupal core with security updates
[yaffs-website] / web / core / tests / Drupal / Tests / Core / Config / ConfigDependencyManagerTest.php
1 <?php
2
3 namespace Drupal\Tests\Core\Config;
4
5 use Drupal\Core\Config\Entity\ConfigDependencyManager;
6 use Drupal\Tests\UnitTestCase;
7
8 /**
9  * Tests the ConfigDependencyManager class.
10  *
11  * @group Config
12  *
13  * @coversDefaultClass \Drupal\Core\Config\Entity\ConfigDependencyManager
14  */
15 class ConfigDependencyManagerTest extends UnitTestCase {
16
17   /**
18    * @dataProvider providerTestSortAll
19    */
20   public function testSortAll(array $data, array $expected_order) {
21     $dependency_manager = new ConfigDependencyManager();
22     $dependency_manager->setData($data);
23     $this->assertEquals($expected_order, $dependency_manager->sortAll());
24   }
25
26   public function providerTestSortAll() {
27     $datasets[] = [
28       [
29         'provider.entity_b' => [],
30         'provider.entity_a' => [],
31       ],
32       ['provider.entity_a', 'provider.entity_b'],
33     ];
34
35     $datasets[] = [
36       [
37         'provider.entity_a' => [],
38         'provider.entity_b' => [],
39       ],
40       ['provider.entity_a', 'provider.entity_b'],
41     ];
42
43     $datasets[] = [
44       [
45         'provider.entity_b' => ['dependencies' => ['config' => ['provider.entity_a']]],
46         'provider.entity_a' => [],
47       ],
48       ['provider.entity_a', 'provider.entity_b'],
49     ];
50
51     $datasets[] = [
52       [
53         'provider.entity_a' => [],
54         'provider.entity_b' => ['dependencies' => ['config' => ['provider.entity_a']]],
55       ],
56       ['provider.entity_a', 'provider.entity_b'],
57     ];
58
59     $datasets[] = [
60       [
61         'provider.entity_b' => [],
62         'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
63       ],
64       ['provider.entity_b', 'provider.entity_a'],
65     ];
66
67     $datasets[] = [
68       [
69         'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
70         'provider.entity_b' => [],
71       ],
72       ['provider.entity_b', 'provider.entity_a'],
73     ];
74
75     $datasets[] = [
76       [
77         'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
78         'provider.entity_b' => [],
79         'block.block.a' => [],
80         'block.block.b' => [],
81       ],
82       ['block.block.a', 'provider.entity_b', 'block.block.b', 'provider.entity_a'],
83     ];
84
85     $datasets[] = [
86       [
87         'provider.entity_b' => [],
88         'block.block.b' => [],
89         'block.block.a' => [],
90         'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
91       ],
92       ['block.block.a', 'provider.entity_b', 'block.block.b', 'provider.entity_a'],
93     ];
94
95     $datasets[] = [
96       [
97         'provider.entity_b' => [],
98         'block.block.b' => [],
99         'block.block.a' => [],
100         'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
101         'provider.entity_c' => ['dependencies' => ['config' => ['block.block.a']]],
102       ],
103       ['block.block.a', 'block.block.b', 'provider.entity_b', 'provider.entity_a', 'provider.entity_c'],
104     ];
105
106     $datasets[] = [
107       [
108         'provider.entity_b' => ['dependencies' => ['module' => ['system']]],
109         'block.block.b' => [],
110         'block.block.a' => ['dependencies' => ['module' => ['system']]],
111         'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_c']]],
112         'provider.entity_c' => ['dependencies' => ['config' => ['block.block.a']]],
113       ],
114       ['block.block.b', 'block.block.a', 'provider.entity_c', 'provider.entity_a', 'provider.entity_b'],
115     ];
116
117     return $datasets;
118   }
119
120 }