ILIAS  release_8 Revision v8.24
ilComponentInfoTest.php
Go to the documentation of this file.
1<?php
19use PHPUnit\Framework\TestCase;
20
21class 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 = [];
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 component.
Simple value class for basic information about a pluginslot.