ILIAS  trunk Revision v11.0_alpha-2662-g519ff7d528f
MainSettingsTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(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')]
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 
286  public static function getAndWithQuestionBehaviourSettingsDataProvider(): array
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')]
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 }
static getAndWithTestBehaviourSettingsDataProvider()
testGetAndWithAdditionalSettings(\Closure $IO)
static getAndWithParticipantFunctionalitySettingsDataProvider()
static getAndWithIntroductionSettingsDataProvider()
testThrowOnDifferentTestId(int $IO)
static getAndWithFinishingSettingsDataProvider()
static throwOnDifferentTestIdExceptionDataProvider()
testGetAndWithAccessSettings(\Closure $IO)
static getAndWithAccessSettingsDataProvider()
testGetAndWithTestId(int $IO)
static getAndWithGeneralSettingsDataProvider()
static getAndWithAdditionalSettingsDataProvider()
static getAndWithTestIdDataProvider()
testGetAndWithParticipantFunctionalitySettings(\Closure $IO)
testGetAndWithIntroductionSettings(\Closure $IO)
static throwOnDifferentTestIdDataProvider()
testGetAndWithFinishingSettings(\Closure $IO)
static getAndWithQuestionBehaviourSettingsDataProvider()
testGetAndWithTestBehaviourSettings(\Closure $IO)
testGetAndWithQuestionBehaviourSettings(\Closure $IO)
testGetAndWithGeneralSettings(\Closure $IO)
testThrowOnDifferentTestIdException(array $input)