ILIAS  trunk Revision v11.0_alpha-1753-gb21ca8c4367
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilPluginSlotInfoTest.php
Go to the documentation of this file.
1 <?php
2 
20 
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 }
Interface Observer Contains several chained tasks and infos about them.
Simple value class for basic information about a pluginslot.
Simple value class for information about a plugin.
ilPluginSlotInfo $pluginslot
Simple value class for basic information about a component.