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