ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
MainSettingsTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
31
33{
34 #[\PHPUnit\Framework\Attributes\DataProvider('throwOnDifferentTestIdDataProvider')]
35 public function testThrowOnDifferentTestId(int $IO): void
36 {
37 $test_settings = $this->createConfiguredMock(TestSettings::class, ['getTestId' => $IO]);
38 $main_settings = new MainSettings(
39 $IO,
40 0,
41 $this->createConfiguredMock(SettingsGeneral::class, ['getTestId' => $IO]),
42 $this->createConfiguredMock(SettingsIntroduction::class, ['getTestId' => $IO]),
43 $this->createConfiguredMock(SettingsAccess::class, ['getTestId' => $IO]),
44 $this->createConfiguredMock(SettingsTestBehaviour::class, ['getTestId' => $IO]),
45 $this->createConfiguredMock(SettingsQuestionBehaviour::class, ['getTestId' => $IO]),
46 $this->createConfiguredMock(SettingsParticipantFunctionality::class, ['getTestId' => $IO]),
47 $this->createConfiguredMock(SettingsFinishing::class, ['getTestId' => $IO]),
48 $this->createConfiguredMock(SettingsAdditional::class, ['getTestId' => $IO])
49 );
50
51 $output = self::callMethod($main_settings, 'throwOnDifferentTestId', [$test_settings]);
52
53 $this->assertNull($output);
54 }
55
56 public static function throwOnDifferentTestIdDataProvider(): array
57 {
58 return [
59 [-1],
60 [0],
61 [1]
62 ];
63 }
64
65 #[\PHPUnit\Framework\Attributes\DataProvider('throwOnDifferentTestIdExceptionDataProvider')]
66 public function testThrowOnDifferentTestIdException(array $input): void
67 {
68 $test_settings = $this->createMock(TestSettings::class);
69 $test_settings->method('getTestId')->willReturn($input['test_id_1']);
70 $main_settings = new MainSettings(
71 $input['test_id_2'],
72 0,
73 $this->createConfiguredMock(SettingsGeneral::class, ['getTestId' => $input['test_id_2']]),
74 $this->createConfiguredMock(SettingsIntroduction::class, ['getTestId' => $input['test_id_2']]),
75 $this->createConfiguredMock(SettingsAccess::class, ['getTestId' => $input['test_id_2']]),
76 $this->createConfiguredMock(SettingsTestBehaviour::class, ['getTestId' => $input['test_id_2']]),
77 $this->createConfiguredMock(SettingsQuestionBehaviour::class, ['getTestId' => $input['test_id_2']]),
78 $this->createConfiguredMock(SettingsParticipantFunctionality::class, ['getTestId' => $input['test_id_2']]),
79 $this->createConfiguredMock(SettingsFinishing::class, ['getTestId' => $input['test_id_2']]),
80 $this->createConfiguredMock(SettingsAdditional::class, ['getTestId' => $input['test_id_2']])
81 );
82 $this->expectException(LogicException::class);
83 self::callMethod($main_settings, 'throwOnDifferentTestId', [$test_settings]);
84 }
85
86 public static function throwOnDifferentTestIdExceptionDataProvider(): array
87 {
88 return [
89 [['test_id_1' => -1, 'test_id_2' => 0]],
90 [['test_id_1' => 0, 'test_id_2' => 1]],
91 [['test_id_1' => 1, 'test_id_2' => -1]]
92 ];
93 }
94
95 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithTestIdDataProvider')]
96 public function testGetAndWithTestId(int $IO): void
97 {
98 $main_settings = (new MainSettings(
99 0,
100 0,
101 $this->createConfiguredMock(
102 SettingsGeneral::class,
103 ['withTestId' => $this->createMock(SettingsGeneral::class)]
104 ),
105 $this->createConfiguredMock(
106 SettingsIntroduction::class,
107 ['withTestId' => $this->createMock(SettingsIntroduction::class)]
108 ),
109 $this->createConfiguredMock(
110 SettingsAccess::class,
111 ['withTestId' => $this->createMock(SettingsAccess::class)]
112 ),
113 $this->createConfiguredMock(
114 SettingsTestBehaviour::class,
115 ['withTestId' => $this->createMock(SettingsTestBehaviour::class)]
116 ),
117 $this->createConfiguredMock(
118 SettingsQuestionBehaviour::class,
119 ['withTestId' => $this->createMock(SettingsQuestionBehaviour::class)]
120 ),
121 $this->createConfiguredMock(
122 SettingsParticipantFunctionality::class,
123 ['withTestId' => $this->createMock(SettingsParticipantFunctionality::class)]
124 ),
125 $this->createConfiguredMock(
126 SettingsFinishing::class,
127 ['withTestId' => $this->createMock(SettingsFinishing::class)]
128 ),
129 $this->createConfiguredMock(
130 SettingsAdditional::class,
131 ['withTestId' => $this->createMock(SettingsAdditional::class)]
132 )
133 ))->withTestId($IO);
134
135
136 $this->assertInstanceOf(MainSettings::class, $main_settings);
137 $this->assertEquals($IO, $main_settings->getTestId());
138 }
139
140 public static function getAndWithTestIdDataProvider(): array
141 {
142 return [
143 [-1],
144 [0],
145 [1]
146 ];
147 }
148
149 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithGeneralSettingsDataProvider')]
150 public function testGetAndWithGeneralSettings(\Closure $IO): void
151 {
152 $IO = $IO($this);
153 $main_settings = (new MainSettings(
154 0,
155 0,
156 $this->createMock(SettingsGeneral::class),
157 $this->createMock(SettingsIntroduction::class),
158 $this->createMock(SettingsAccess::class),
159 $this->createMock(SettingsTestBehaviour::class),
160 $this->createMock(SettingsQuestionBehaviour::class),
161 $this->createMock(SettingsParticipantFunctionality::class),
162 $this->createMock(SettingsFinishing::class),
163 $this->createMock(SettingsAdditional::class)
164 ))->withGeneralSettings($IO);
165
166 $this->assertInstanceOf(MainSettings::class, $main_settings);
167 $this->assertEquals($IO, $main_settings->getGeneralSettings());
168 }
169
170 public static function getAndWithGeneralSettingsDataProvider(): array
171 {
172 return [[
173 static fn(self $test_case): SettingsGeneral =>
174 $test_case->createMock(SettingsGeneral::class)
175 ]];
176 }
177
178 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithIntroductionSettingsDataProvider')]
179 public function testGetAndWithIntroductionSettings(\Closure $IO): void
180 {
181 $IO = $IO($this);
182 $main_settings = (new MainSettings(
183 0,
184 0,
185 $this->createMock(SettingsGeneral::class),
186 $this->createMock(SettingsIntroduction::class),
187 $this->createMock(SettingsAccess::class),
188 $this->createMock(SettingsTestBehaviour::class),
189 $this->createMock(SettingsQuestionBehaviour::class),
190 $this->createMock(SettingsParticipantFunctionality::class),
191 $this->createMock(SettingsFinishing::class),
192 $this->createMock(SettingsAdditional::class)
193 ))->withIntroductionSettings($IO);
194
195 $this->assertInstanceOf(MainSettings::class, $main_settings);
196 $this->assertEquals($IO, $main_settings->getIntroductionSettings());
197 }
198
199 public static function getAndWithIntroductionSettingsDataProvider(): array
200 {
201 return [[
202 static fn(self $test_case): SettingsIntroduction =>
203 $test_case->createMock(SettingsIntroduction::class)
204 ]];
205 }
206
207 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithAccessSettingsDataProvider')]
208 public function testGetAndWithAccessSettings(\Closure $IO): void
209 {
210 $IO = $IO($this);
211 $main_settings = (new MainSettings(
212 0,
213 0,
214 $this->createMock(SettingsGeneral::class),
215 $this->createMock(SettingsIntroduction::class),
216 $this->createMock(SettingsAccess::class),
217 $this->createMock(SettingsTestBehaviour::class),
218 $this->createMock(SettingsQuestionBehaviour::class),
219 $this->createMock(SettingsParticipantFunctionality::class),
220 $this->createMock(SettingsFinishing::class),
221 $this->createMock(SettingsAdditional::class)
222 ))->withAccessSettings($IO);
223
224 $this->assertInstanceOf(MainSettings::class, $main_settings);
225 $this->assertEquals($IO, $main_settings->getAccessSettings());
226 }
227
228 public static function getAndWithAccessSettingsDataProvider(): array
229 {
230 return [[
231 static fn(self $test_case): SettingsAccess =>
232 $test_case->createMock(SettingsAccess::class)
233 ]];
234 }
235
236 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithTestBehaviourSettingsDataProvider')]
237 public function testGetAndWithTestBehaviourSettings(\Closure $IO): void
238 {
239 $IO = $IO($this);
240 $main_settings = (new MainSettings(
241 0,
242 0,
243 $this->createMock(SettingsGeneral::class),
244 $this->createMock(SettingsIntroduction::class),
245 $this->createMock(SettingsAccess::class),
246 $this->createMock(SettingsTestBehaviour::class),
247 $this->createMock(SettingsQuestionBehaviour::class),
248 $this->createMock(SettingsParticipantFunctionality::class),
249 $this->createMock(SettingsFinishing::class),
250 $this->createMock(SettingsAdditional::class)
251 ))->withTestBehaviourSettings($IO);
252
253 $this->assertInstanceOf(MainSettings::class, $main_settings);
254 $this->assertEquals($IO, $main_settings->getTestBehaviourSettings());
255 }
256
257 public static function getAndWithTestBehaviourSettingsDataProvider(): array
258 {
259 return [[
260 static fn(self $test_case): SettingsTestBehaviour =>
261 $test_case->createMock(SettingsTestBehaviour::class)
262 ]];
263 }
264
265 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithQuestionBehaviourSettingsDataProvider')]
266 public function testGetAndWithQuestionBehaviourSettings(\Closure $IO): void
267 {
268 $IO = $IO($this);
269 $main_settings = (new MainSettings(
270 0,
271 0,
272 $this->createMock(SettingsGeneral::class),
273 $this->createMock(SettingsIntroduction::class),
274 $this->createMock(SettingsAccess::class),
275 $this->createMock(SettingsTestBehaviour::class),
276 $this->createMock(SettingsQuestionBehaviour::class),
277 $this->createMock(SettingsParticipantFunctionality::class),
278 $this->createMock(SettingsFinishing::class),
279 $this->createMock(SettingsAdditional::class)
280 ))->withQuestionBehaviourSettings($IO);
281
282 $this->assertInstanceOf(MainSettings::class, $main_settings);
283 $this->assertEquals($IO, $main_settings->getQuestionBehaviourSettings());
284 }
285
287 {
288 return [[
289 static fn(self $test_case): SettingsQuestionBehaviour =>
290 $test_case->createMock(SettingsQuestionBehaviour::class)
291 ]];
292 }
293
294 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithParticipantFunctionalitySettingsDataProvider')]
295 public function testGetAndWithParticipantFunctionalitySettings(\Closure $IO): void
296 {
297 $IO = $IO($this);
298 $main_settings = (new MainSettings(
299 0,
300 0,
301 $this->createMock(SettingsGeneral::class),
302 $this->createMock(SettingsIntroduction::class),
303 $this->createMock(SettingsAccess::class),
304 $this->createMock(SettingsTestBehaviour::class),
305 $this->createMock(SettingsQuestionBehaviour::class),
306 $this->createMock(SettingsParticipantFunctionality::class),
307 $this->createMock(SettingsFinishing::class),
308 $this->createMock(SettingsAdditional::class)
309 ))->withParticipantFunctionalitySettings($IO);
310
311 $this->assertInstanceOf(MainSettings::class, $main_settings);
312 $this->assertEquals($IO, $main_settings->getParticipantFunctionalitySettings());
313 }
314
316 {
317 return [[
318 static fn(self $test_case): SettingsParticipantFunctionality =>
319 $test_case->createMock(SettingsParticipantFunctionality::class)
320 ]];
321 }
322
323 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithFinishingSettingsDataProvider')]
324 public function testGetAndWithFinishingSettings(\Closure $IO): void
325 {
326 $IO = $IO($this);
327 $main_settings = (new MainSettings(
328 0,
329 0,
330 $this->createMock(SettingsGeneral::class),
331 $this->createMock(SettingsIntroduction::class),
332 $this->createMock(SettingsAccess::class),
333 $this->createMock(SettingsTestBehaviour::class),
334 $this->createMock(SettingsQuestionBehaviour::class),
335 $this->createMock(SettingsParticipantFunctionality::class),
336 $this->createMock(SettingsFinishing::class),
337 $this->createMock(SettingsAdditional::class)
338 ))->withFinishingSettings($IO);
339
340 $this->assertInstanceOf(MainSettings::class, $main_settings);
341 $this->assertEquals($IO, $main_settings->getFinishingSettings());
342 }
343
344 public static function getAndWithFinishingSettingsDataProvider(): array
345 {
346 return [[
347 static fn(self $test_case): SettingsFinishing =>
348 $test_case->createMock(SettingsFinishing::class)
349 ]];
350 }
351
352 #[\PHPUnit\Framework\Attributes\DataProvider('getAndWithAdditionalSettingsDataProvider')]
353 public function testGetAndWithAdditionalSettings(\Closure $IO): void
354 {
355 $IO = $IO($this);
356 $main_settings = (new MainSettings(
357 0,
358 0,
359 $this->createMock(SettingsGeneral::class),
360 $this->createMock(SettingsIntroduction::class),
361 $this->createMock(SettingsAccess::class),
362 $this->createMock(SettingsTestBehaviour::class),
363 $this->createMock(SettingsQuestionBehaviour::class),
364 $this->createMock(SettingsParticipantFunctionality::class),
365 $this->createMock(SettingsFinishing::class),
366 $this->createMock(SettingsAdditional::class)
367 ))->withAdditionalSettings($IO);
368
369 $this->assertInstanceOf(MainSettings::class, $main_settings);
370 $this->assertEquals($IO, $main_settings->getAdditionalSettings());
371 }
372
373 public static function getAndWithAdditionalSettingsDataProvider(): array
374 {
375 return [[
376 static fn(self $test_case): SettingsAdditional =>
377 $test_case->createMock(SettingsAdditional::class)
378 ]];
379 }
380}
testGetAndWithQuestionBehaviourSettings(\Closure $IO)
testGetAndWithTestId(int $IO)
testThrowOnDifferentTestId(int $IO)
testGetAndWithAccessSettings(\Closure $IO)
testGetAndWithIntroductionSettings(\Closure $IO)
static getAndWithFinishingSettingsDataProvider()
static getAndWithGeneralSettingsDataProvider()
static throwOnDifferentTestIdDataProvider()
static getAndWithTestBehaviourSettingsDataProvider()
static getAndWithParticipantFunctionalitySettingsDataProvider()
testGetAndWithAdditionalSettings(\Closure $IO)
static getAndWithQuestionBehaviourSettingsDataProvider()
static throwOnDifferentTestIdExceptionDataProvider()
testGetAndWithTestBehaviourSettings(\Closure $IO)
static getAndWithTestIdDataProvider()
static getAndWithAccessSettingsDataProvider()
testGetAndWithGeneralSettings(\Closure $IO)
testThrowOnDifferentTestIdException(array $input)
testGetAndWithFinishingSettings(\Closure $IO)
static getAndWithIntroductionSettingsDataProvider()
static getAndWithAdditionalSettingsDataProvider()
testGetAndWithParticipantFunctionalitySettings(\Closure $IO)
Class ilTestBaseClass.
static callMethod($obj, $name, array $args=[])