3 namespace Drupal\Tests\Core\Config;
5 use Drupal\Core\Config\Entity\ConfigDependencyManager;
6 use Drupal\Tests\UnitTestCase;
9 * Tests the ConfigDependencyManager class.
13 * @coversDefaultClass \Drupal\Core\Config\Entity\ConfigDependencyManager
15 class ConfigDependencyManagerTest extends UnitTestCase {
18 * @dataProvider providerTestSortAll
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());
26 public function providerTestSortAll() {
29 'provider.entity_b' => [],
30 'provider.entity_a' => [],
32 ['provider.entity_a', 'provider.entity_b'],
37 'provider.entity_a' => [],
38 'provider.entity_b' => [],
40 ['provider.entity_a', 'provider.entity_b'],
45 'provider.entity_b' => ['dependencies' => ['config' => ['provider.entity_a']]],
46 'provider.entity_a' => [],
48 ['provider.entity_a', 'provider.entity_b'],
53 'provider.entity_a' => [],
54 'provider.entity_b' => ['dependencies' => ['config' => ['provider.entity_a']]],
56 ['provider.entity_a', 'provider.entity_b'],
61 'provider.entity_b' => [],
62 'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
64 ['provider.entity_b', 'provider.entity_a'],
69 'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
70 'provider.entity_b' => [],
72 ['provider.entity_b', 'provider.entity_a'],
77 'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
78 'provider.entity_b' => [],
79 'block.block.a' => [],
80 'block.block.b' => [],
82 ['block.block.a', 'provider.entity_b', 'block.block.b', 'provider.entity_a'],
87 'provider.entity_b' => [],
88 'block.block.b' => [],
89 'block.block.a' => [],
90 'provider.entity_a' => ['dependencies' => ['config' => ['provider.entity_b']]],
92 ['block.block.a', 'provider.entity_b', 'block.block.b', 'provider.entity_a'],
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']]],
103 ['block.block.a', 'block.block.b', 'provider.entity_b', 'provider.entity_a', 'provider.entity_c'],
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']]],
114 ['block.block.b', 'block.block.a', 'provider.entity_c', 'provider.entity_a', 'provider.entity_b'],