ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilPluginSlotInfoTest.php
Go to the documentation of this file.
1<?php
2
19use PHPUnit\Framework\TestCase;
20
21class ilPluginSlotInfoTest extends TestCase
22{
27
28 protected function setUp(): void
29 {
30 $slots = [];
31 $this->component = new ilComponentInfo(
32 "mod1",
33 "components/ILIAS",
34 "Module1",
35 $slots
36 );
37
38 $plugins = [];
39 $this->pluginslot = new ilPluginSlotInfo(
40 $this->component,
41 "slt1",
42 "Slot1",
43 $plugins
44 );
45
46 $v = $this->createMock(\ILIAS\Data\Version::class);
47 $this->plugin1 = new class ($v, $this->pluginslot, "plg1", "Plugin1", "Type1", true, $v, 0, $v, $v, $v, "", "", false, false, false) extends ilPluginInfo {
48 public function isActive(): bool
49 {
50 return true;
51 }
52 };
53 $plugins["plg1"] = $this->plugin1;
54
55 $this->plugin2 = new class ($v, $this->pluginslot, "plg2", "Plugin2", "Type2", true, $v, 0, $v, $v, $v, "", "", false, false, false) extends ilPluginInfo {
56 public function isActive(): bool
57 {
58 return false;
59 }
60 };
61 $plugins["plg2"] = $this->plugin2;
62 }
63
64 public function testGetter(): void
65 {
66 $slots = [];
67 $this->assertEquals(new ilComponentInfo("mod1", "components/ILIAS", "Module1", $slots), $this->pluginslot->getComponent());
68 $this->assertEquals("slt1", $this->pluginslot->getId());
69 $this->assertEquals("Slot1", $this->pluginslot->getName());
70 $this->assertEquals("components/ILIAS/Module1/Slot1", $this->pluginslot->getQualifiedName());
71 }
72
73 public function testGetPlugins(): void
74 {
75 $plugins = iterator_to_array($this->pluginslot->getPlugins());
76 $this->assertCount(2, $plugins);
77 $this->assertEquals($this->plugin1, $plugins["plg1"]);
78 $this->assertEquals($this->plugin2, $plugins["plg2"]);
79 }
80
81 public function testHasPluginId(): void
82 {
83 $this->assertTrue($this->pluginslot->hasPluginId("plg1"));
84 $this->assertTrue($this->pluginslot->hasPluginId("plg2"));
85 $this->assertFalse($this->pluginslot->hasPluginId("plg3"));
86 }
87
88 public function testGetPluginById(): void
89 {
90 $this->assertEquals($this->plugin1, $this->pluginslot->getPluginById("plg1"));
91 $this->assertEquals($this->plugin2, $this->pluginslot->getPluginById("plg2"));
92 }
93
94 public function testGetUnknownPluginId(): void
95 {
96 $this->expectException(\InvalidArgumentException::class);
97 $this->pluginslot->getPluginById("plg3");
98 }
99
100 public function testHasPluginName(): void
101 {
102 $this->assertTrue($this->pluginslot->hasPluginName("Plugin1"));
103 $this->assertTrue($this->pluginslot->hasPluginName("Plugin2"));
104 $this->assertFalse($this->pluginslot->hasPluginName("Plugin3"));
105 }
106
107 public function testGetPluginByName(): void
108 {
109 $this->assertEquals($this->plugin1, $this->pluginslot->getPluginByName("Plugin1"));
110 $this->assertEquals($this->plugin2, $this->pluginslot->getPluginByName("Plugin2"));
111 }
112
113 public function testGetUnknownPluginName(): void
114 {
115 $this->expectException(\InvalidArgumentException::class);
116 $this->pluginslot->getPluginByName("Plugin3");
117 }
118
119 public function testGetActivePlugins(): void
120 {
121 $plugins = iterator_to_array($this->pluginslot->getActivePlugins());
122 $this->assertCount(1, $plugins);
123 $this->assertEquals($this->plugin1, $plugins["plg1"]);
124 }
125
126 public function testHasActivePlugins(): void
127 {
128 $this->assertTrue($this->pluginslot->hasActivePlugins());
129 }
130
131 public function testHasNoActivePlugins(): void
132 {
133 $plugins = [];
134 $other_pluginslot = new ilPluginSlotInfo(
135 $this->component,
136 "slt1",
137 "Slot1",
138 $plugins
139 );
140
141 $this->assertFalse($other_pluginslot->hasActivePlugins());
142 }
143}
Simple value class for basic information about a component.
Simple value class for information about a plugin.
ilPluginSlotInfo $pluginslot
Simple value class for basic information about a pluginslot.
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.