29 protected function setUp(): void
37 protected const BASE_PATH =
"";
43 protected function scanDir(
string $dir): array
45 $this->test->scanned[] = $dir;
46 return $this->test->dirs[$dir] ?? [];
48 public function _scanDir(
string $dir): array
50 return parent::scanDir($dir);
52 protected function isDir(
string $dir):
bool 56 public function _isDir(
string $dir):
bool 58 return parent::isDir($dir);
60 public function _isDotFile(
string $file):
bool 62 return parent::isDotFile($file);
64 protected function buildPluginPath(
string $type,
string $component,
string $slot,
string $plugin):
string 66 return $this->test->files[parent::buildPluginPath($type, $component, $slot, $plugin)];
69 public function _buildPluginPath(
string $type,
string $component,
string $slot,
string $plugin):
string 71 return parent::buildPluginPath($type, $component, $slot, $plugin);
73 protected function addPlugin(array &
$data,
string $type,
string $component,
string $slot,
string $plugin):
void 75 $this->test->added[] =
"$type/$component/$slot/$plugin";
77 public function _addPlugin(array &$data,
string $type,
string $component,
string $slot,
string $plugin):
void 79 parent::addPlugin($data, $type, $component, $slot, $plugin);
86 $this->builder->build();
88 $expected = [
"Modules",
"Services"];
91 $this->assertEquals($expected, $this->scanned);
97 "Modules" => [
"Module1",
"Module2"],
98 "Services" => [
"Service1"],
99 "Modules/Module1" => [
"Slot1",
"Slot2"],
100 "Modules/Module2" => [],
101 "Services/Service1" => [
"Slot3",
".DS_Store"]
104 $this->builder->build();
106 $expected = [
"Modules",
"Services",
"Modules/Module1",
"Modules/Module2",
107 "Services/Service1",
"Modules/Module1/Slot1",
"Modules/Module1/Slot2",
108 "Services/Service1/Slot3"];
110 sort($this->scanned);
111 $this->assertEquals($expected, $this->scanned);
117 "Modules" => [
"Module1"],
118 "Services" => [
"Service1"],
119 "Modules/Module1" => [
"Slot1"],
120 "Services/Service1" => [
"Slot2"],
121 "Modules/Module1/Slot1" => [
"Plugin1",
"Plugin2"],
122 "Services/Service1/Slot2" => [
"Plugin3"]
125 $this->builder->build();
128 "Modules/Module1/Slot1/Plugin1",
129 "Modules/Module1/Slot1/Plugin2",
130 "Services/Service1/Slot2/Plugin3" 134 $this->assertEquals($expected, $this->added);
140 $expected = [
"ROADMAP.md",
"classes",
"exceptions",
"maintenance.json",
"service.xml",
"test"];
141 $actual = array_values(
143 $this->builder->_scanDir(__DIR__ .
"/../.."),
144 [
"artifacts",
".DS_Store"]
147 $this->assertEquals($expected, $actual);
154 $actual = $this->builder->_isDir(__DIR__ .
"/../..");
155 $this->assertEquals($expected, $actual);
161 $actual = $this->builder->_isDotFile(
".DS_Store");
162 $this->assertEquals($expected, $actual);
168 $this->files[
"Modules/Module1/Slot1/Plugin1/"] = __DIR__ .
"/";
169 $this->builder->_addPlugin(
$data,
"Modules",
"Module1",
"Slot1",
"Plugin1");
181 "richard.klees@concepts-and-training.de",
187 $this->assertEquals($expected,
$data);
192 $this->assertEquals(
"TYPE/COMPONENT/SLOT/PLUGIN/", $this->builder->_buildPluginPath(
"TYPE",
"COMPONENT",
"SLOT",
"PLUGIN"));
ilComponentBuildPluginInfoObjective $builder