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