ILIAS  release_8 Revision v8.23
ilComponentInfoTest.php
Go to the documentation of this file.
1 <?php
20 
21 class ilComponentInfoTest extends TestCase
22 {
23  protected function setUp(): void
24  {
25  $slots = [];
26 
27  $this->component = new ilComponentInfo(
28  "mod1",
29  "Modules",
30  "Module1",
31  $slots
32  );
33 
34  $plugins = [];
35  $this->pluginslot1 = new ilPluginSlotInfo(
36  $this->component,
37  "slt1",
38  "Slot1",
39  $plugins
40  );
41 
42  $this->pluginslot2 = new ilPluginSlotInfo(
43  $this->component,
44  "slt2",
45  "Slot2",
46  $plugins
47  );
48 
49  $slots[] = $this->pluginslot1;
50  $slots[] = $this->pluginslot2;
51  }
52 
53  public function testGetter(): void
54  {
55  $this->assertEquals("mod1", $this->component->getId());
56  $this->assertEquals("Modules", $this->component->getType());
57  $this->assertEquals("Module1", $this->component->getName());
58  $this->assertEquals("Modules/Module1", $this->component->getQualifiedName());
59  }
60 
61  public function testInvalidTypeThrowsException(): void
62  {
63  $this->expectException(\InvalidArgumentException::class);
64  $slots = [];
65  new ilComponentInfo(
66  "id",
67  "SomeOtherType",
68  "name",
69  $slots
70  );
71  }
72 
73  public function testGetPluginsSlots(): void
74  {
75  $pluginslots = iterator_to_array($this->component->getPluginSlots());
76  $plugins = [];
77  $this->assertCount(2, $pluginslots);
78  $this->assertEquals(new ilPluginSlotInfo($this->component, "slt1", "Slot1", $plugins), $pluginslots["slt1"]);
79  $this->assertEquals(new ilPluginSlotInfo($this->component, "slt2", "Slot2", $plugins), $pluginslots["slt2"]);
80  }
81 
82  public function testHasPluginSlotId(): void
83  {
84  $this->assertTrue($this->component->hasPluginSlotId("slt1"));
85  $this->assertTrue($this->component->hasPluginSlotId("slt2"));
86  $this->assertFalse($this->component->hasPluginSlotId("slt3"));
87  }
88 
89  public function testGetPluginSlotById(): void
90  {
91  $plugins = [];
92  $this->assertEquals(new ilPluginSlotInfo($this->component, "slt1", "Slot1", $plugins), $this->component->getPluginSlotById("slt1"));
93  $this->assertEquals(new ilPluginSlotInfo($this->component, "slt2", "Slot2", $plugins), $this->component->getPluginSlotById("slt2"));
94  }
95 
96  public function testGetUnknownPluginSlotById(): void
97  {
98  $this->expectException(\InvalidArgumentException::class);
99  $this->component->getPluginSlotById("slt3");
100  }
101 
102  public function testGetUnknownPluginSlot(): void
103  {
104  $this->expectException(\InvalidArgumentException::class);
105  $this->component->getPluginSlotById("slt3");
106  }
107 
108  public function testHasPluginSlotName(): void
109  {
110  $this->assertTrue($this->component->hasPluginSlotName("Slot1"));
111  $this->assertTrue($this->component->hasPluginSlotName("Slot2"));
112  $this->assertFalse($this->component->hasPluginSlotName("Slot3"));
113  }
114 
115  public function testGetPluginSlotByName(): void
116  {
117  $plugins = [];
118  $this->assertEquals(new ilPluginSlotInfo($this->component, "slt1", "Slot1", $plugins), $this->component->getPluginSlotByName("Slot1"));
119  $this->assertEquals(new ilPluginSlotInfo($this->component, "slt2", "Slot2", $plugins), $this->component->getPluginSlotByName("Slot2"));
120  }
121 
122  public function testGetUnknownPluginSlotByName(): void
123  {
124  $this->expectException(\InvalidArgumentException::class);
125  $this->component->getPluginSlotById("Slot3");
126  }
127 }
Simple value class for basic information about a pluginslot.
Simple value class for basic information about a component.