ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
ilComponentDefinitionInfoProcessorTest.php
Go to the documentation of this file.
1 <?php
2 
21 
23 {
25 
26  protected function setUp(): void
27  {
28  $this->processor = new ilComponentInfoDefinitionProcessor();
29  }
30 
31  public function testPurge(): void
32  {
33  $type = "components/ILIAS";
34  $name = "NAME";
35  $id = "ID";
36 
37  $this->processor->beginComponent($name, $type);
38  $this->processor->beginTag("module", ["id" => $id]);
39  $this->processor->purge();
40 
41  $this->assertEquals([], $this->processor->getData());
42  }
43 
44  public function testBeginTag(): void
45  {
46  $type1 = "components/ILIAS";
47  $name1 = "NAME1";
48  $id1 = "ID1";
49  $name2 = "NAME2";
50  $id2 = "ID2";
51 
52  $type2 = "components/ILIAS";
53  $name3 = "NAME3";
54  $id3 = "ID3";
55  $name4 = "NAME4";
56  $id4 = "ID4";
57 
58  $id5 = "id5";
59  $name5 = "name5";
60  $id6 = "id6";
61  $name6 = "name6";
62  $id7 = "id7";
63  $name7 = "name7";
64 
65  $this->processor->beginComponent($name1, $type1);
66  $this->processor->beginTag("module", ["id" => $id1]);
67 
68  $this->processor->beginComponent($name2, $type1);
69  $this->processor->beginTag("module", ["id" => $id2]);
70  $this->processor->beginTag("pluginslot", ["id" => $id5, "name" => $name5]);
71 
72  $this->processor->beginComponent($name3, $type2);
73  $this->processor->beginTag("service", ["id" => $id3]);
74  $this->processor->beginTag("pluginslot", ["id" => $id6, "name" => $name6]);
75  $this->processor->beginTag("pluginslot", ["id" => $id7, "name" => $name7]);
76 
77  $this->processor->beginComponent($name4, $type2);
78  $this->processor->beginTag("service", ["id" => $id4]);
79 
80  $expected = [
81  $id1 => [$type1, $name1, []],
82  $id2 => [$type1, $name2, [[$id5, $name5]]],
83  $id3 => [$type2, $name3, [[$id6, $name6], [$id7, $name7]]],
84  $id4 => [$type2, $name4, []]
85  ];
86 
87  $this->assertEquals($expected, $this->processor->getData());
88  }
89 
90  public function testMissingId(): void
91  {
92  $this->expectException(\InvalidArgumentException::class);
93 
94  $type = "components/ILIAS";
95  $name = "NAME";
96 
97  $this->processor->beginComponent($name, $type);
98  $this->processor->beginTag("service", []);
99  }
100 
101  public function testDuplicateComponentId(): void
102  {
103  $this->expectException(\LogicException::class);
104 
105  $this->processor->beginComponent("Module1", "components/ILIAS");
106  $this->processor->beginTag("module", ["id" => "id"]);
107 
108  $this->processor->beginComponent("Module2", "components/ILIAS");
109  $this->processor->beginTag("module", ["id" => "id"]);
110  }
111 
112  public function testDuplicatePluginId(): void
113  {
114  $this->expectException(\LogicException::class);
115 
116  $this->processor->beginComponent("Module1", "components/ILIAS");
117  $this->processor->beginTag("module", ["id" => "id1"]);
118  $this->processor->beginTag("pluginslot", ["id" => "id", "name" => "name"]);
119 
120  $this->processor->beginComponent("Module2", "components/ILIAS");
121  $this->processor->beginTag("module", ["id" => "id2"]);
122  $this->processor->beginTag("pluginslot", ["id" => "id", "name" => "name"]);
123  }
124 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:24