ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilPluginSlotInfoTest.php
Go to the documentation of this file.
1 <?php
20 
21 class 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 }
Class ChatMainBarProvider .
Simple value class for basic information about a pluginslot.
Simple value class for information about a plugin.
Simple value class for basic information about a component.