ILIAS  release_8 Revision v8.24
ilComponentDefinitionInfoProcessorTest.php
Go to the documentation of this file.
1<?php
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 = "Modules";
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 = "Modules";
46 $name1 = "NAME1";
47 $id1 = "ID1";
48 $name2 = "NAME2";
49 $id2 = "ID2";
50
51 $type2 = "Services";
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 testTagComponentTypeMismatch(): void
90 {
91 $this->expectException(\InvalidArgumentException::class);
92
93 $type = "Services";
94 $name = "NAME";
95 $id = "ID";
96
97 $this->processor->beginComponent($name, $type);
98 $this->processor->beginTag("module", ["id" => $id]);
99 }
100
101 public function testMissingId(): void
102 {
103 $this->expectException(\InvalidArgumentException::class);
104
105 $type = "Services";
106 $name = "NAME";
107
108 $this->processor->beginComponent($name, $type);
109 $this->processor->beginTag("service", []);
110 }
111
112 public function testDuplicateComponentId(): void
113 {
114 $this->expectException(\LogicException::class);
115
116 $this->processor->beginComponent("Module1", "Modules");
117 $this->processor->beginTag("module", ["id" => "id"]);
118
119 $this->processor->beginComponent("Module2", "Modules");
120 $this->processor->beginTag("module", ["id" => "id"]);
121 }
122
123 public function testDuplicatePluginId(): void
124 {
125 $this->expectException(\LogicException::class);
126
127 $this->processor->beginComponent("Module1", "Modules");
128 $this->processor->beginTag("module", ["id" => "id1"]);
129 $this->processor->beginTag("pluginslot", ["id" => "id", "name" => "name"]);
130
131 $this->processor->beginComponent("Module2", "Modules");
132 $this->processor->beginTag("module", ["id" => "id2"]);
133 $this->processor->beginTag("pluginslot", ["id" => "id", "name" => "name"]);
134 }
135}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
if($format !==null) $name
Definition: metadata.php:247
$type