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