ILIAS  release_8 Revision v8.24
ilTestEvaluationUserDataTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
26{
28
29 protected function setUp(): void
30 {
31 parent::setUp();
32
33 $this->testObj = new ilTestEvaluationUserData(0);
34 }
35
37 {
38 $this->assertInstanceOf(ilTestEvaluationUserData::class, $this->testObj);
39 }
40
41 public function test__sleep(): void
42 {
43 $expected = [
44 "questions",
45 "passes",
46 "passed",
47 "lastVisit",
48 "firstVisit",
49 "timeOfWork",
50 "numberOfQuestions",
51 "questionsWorkedThrough",
52 "markECTS",
53 "mark_official",
54 "mark",
55 "maxpoints",
56 "reached",
57 "user_id",
58 "login",
59 "name",
60 "passScoring"
61 ];
62
63 $this->assertEquals($expected, $this->testObj->__sleep());
64 }
65
66 public function testPassScoring(): void
67 {
68 $expected = [1, 0, 20, 120, 12];
69
70 $this->testObj->setPassScoring($expected);
71 $this->assertEquals($expected, $this->testObj->getPassScoring());
72 }
73
74 public function testPassed(): void
75 {
76 $this->testObj->setPassed(true);
77 $this->assertTrue($this->testObj->getPassed());
78
79 $this->testObj->setPassed(false);
80 $this->assertFalse($this->testObj->getPassed());
81 }
82
83 public function testName(): void
84 {
85 $this->testObj->setName("testName");
86 $this->assertEquals("testName", $this->testObj->getName());
87 }
88
89 public function testLogin(): void
90 {
91 $this->testObj->setLogin("testLogin");
92 $this->assertEquals("testLogin", $this->testObj->getLogin());
93 }
94
95 public function testSubmitted(): void
96 {
97 $this->testObj->setSubmitted(true);
98 $this->assertTrue($this->testObj->isSubmitted());
99
100 $this->testObj->setSubmitted(false);
101 $this->assertFalse($this->testObj->isSubmitted());
102 }
103
104 public function testSetReached(): void
105 {
106 $this->testObj->setReached(220.55);
107 $this->assertEquals(220.55, $this->testObj->reached);
108 }
109
110 public function testGetReached(): void
111 {
112 $testEvaluationPassData = new ilTestEvaluationPassData();
113 $testEvaluationPassData->setReachedPoints(20);
114
115 $this->testObj->passes = [
116 $testEvaluationPassData
117 ];
118
119 $this->assertEquals(20, $this->testObj->getReached());
120 }
121
122 public function testGetMaxpoints(): void
123 {
124 $testEvaluationPassData = new ilTestEvaluationPassData();
125 $testEvaluationPassData->setMaxPoints(20);
126
127 $this->testObj->passes = [
128 $testEvaluationPassData
129 ];
130
131 $this->assertEquals(20, $this->testObj->getMaxpoints());
132 }
133
134 public function testSetMaxpoints(): void
135 {
136 $this->testObj->setMaxpoints(220.55);
137 $this->assertEquals(220.55, $this->testObj->maxpoints);
138 }
139
140 public function testGetReachedPointsInPercent(): void
141 {
142 $testEvaluationPassData = new ilTestEvaluationPassData();
143 $testEvaluationPassData->setReachedPoints(15);
144 $testEvaluationPassData->setMaxPoints(20);
145
146 $this->testObj->passes = [
147 $testEvaluationPassData
148 ];
149
150 $this->assertEquals(75, $this->testObj->getReachedPointsInPercent());
151 }
152
153 public function testMark(): void
154 {
155 $this->testObj->setMark("testMark");
156 $this->assertEquals("testMark", $this->testObj->getMark());
157 }
158
159 public function testECTSMark(): void
160 {
161 $this->testObj->setECTSMark("testECTSMark");
162 $this->assertEquals("testECTSMark", $this->testObj->getECTSMark());
163 }
164
165 public function testGetQuestionsWorkedThrough(): void
166 {
167 $testEvaluationPassData = new ilTestEvaluationPassData();
168 $testEvaluationPassData->setReachedPoints(15);
169 $testEvaluationPassData->setMaxPoints(20);
170 $testEvaluationPassData->setNrOfAnsweredQuestions(5);
171
172 $this->testObj->passes = [
173 $testEvaluationPassData
174 ];
175
176 $this->assertEquals(5, $this->testObj->getQuestionsWorkedThrough());
177 }
178
179 public function testSetQuestionsWorkedThrough(): void
180 {
181 $this->testObj->setQuestionsWorkedThrough(215);
182 $this->assertEquals(215, $this->testObj->questionsWorkedThrough);
183 }
184
185 public function testGetNumberOfQuestions(): void
186 {
187 $testEvaluationPassData = new ilTestEvaluationPassData();
188 $testEvaluationPassData->setQuestionCount(5);
189
190 $this->testObj->passes = [
191 $testEvaluationPassData
192 ];
193
194 $this->assertEquals(5, $this->testObj->getNumberOfQuestions());
195 }
196
197 public function testSetNumberOfQuestions(): void
198 {
199 $this->testObj->setNumberOfQuestions(215);
200 $this->assertEquals(215, $this->testObj->numberOfQuestions);
201 }
202
204 {
205 $testEvaluationPassData = new ilTestEvaluationPassData();
206 $testEvaluationPassData->setQuestionCount(5);
207 $testEvaluationPassData->setNrOfAnsweredQuestions(3);
208
209 $this->testObj->passes = [
210 $testEvaluationPassData
211 ];
212
213 $this->assertEquals(60, $this->testObj->getQuestionsWorkedThroughInPercent());
214 }
215
216 public function testGetTimeOfWork(): void
217 {
218 $data1 = new ilTestEvaluationPassData();
219 $data1->setWorkingTime(5);
220
221 $data2 = new ilTestEvaluationPassData();
222 $data2->setWorkingTime(7);
223
224 $this->testObj->passes = [
225 $data1,
226 $data2
227 ];
228
229 $this->assertEquals(12, $this->testObj->getTimeOfWork());
230 }
231
232 public function testSetTimeOfWork(): void
233 {
234 $this->testObj->setTimeOfWork(215);
235 $this->assertEquals(215, $this->testObj->timeOfWork);
236 }
237
238 public function testFirstVisit(): void
239 {
240 $this->testObj->setFirstVisit("2125");
241
242 $this->assertEquals("2125", $this->testObj->getFirstVisit());
243 }
244
245 public function testLastVisit(): void
246 {
247 $this->testObj->setLastVisit("2125");
248
249 $this->assertEquals("2125", $this->testObj->getLastVisit());
250 }
251
252 public function testGetPasses(): void
253 {
254 $data1 = new ilTestEvaluationPassData();
255 $data1->setWorkingTime(5);
256
257 $data2 = new ilTestEvaluationPassData();
258 $data2->setWorkingTime(7);
259
260 $this->testObj->passes = [
261 $data1,
262 $data2
263 ];
264
265 $this->assertEquals([$data1, $data2], $this->testObj->getPasses());
266 }
267
268 public function testAddPasses(): void
269 {
270 $this->assertEquals(0, $this->testObj->getPassCount());
271
272 $this->testObj->addPass(0, new ilTestEvaluationPassData());
273 $this->testObj->addPass(0, new ilTestEvaluationPassData());
274 $this->testObj->addPass(1, new ilTestEvaluationPassData());
275
276 $this->assertEquals(2, $this->testObj->getPassCount());
277 }
278
279 public function testGetPass(): void
280 {
281 $this->assertEquals(0, $this->testObj->getPassCount());
282
284 $this->testObj->addPass(3, $data);
285 $this->testObj->addPass(0, new ilTestEvaluationPassData());
286 $this->testObj->addPass(1, new ilTestEvaluationPassData());
287
288 $this->assertEquals($data, $this->testObj->getPass(3));
289 }
290
291 public function testGetPassCount(): void
292 {
293 $this->assertEquals(0, $this->testObj->getPassCount());
294
295 $this->testObj->addPass(0, new ilTestEvaluationPassData());
296 $this->testObj->addPass(0, new ilTestEvaluationPassData());
297 $this->testObj->addPass(1, new ilTestEvaluationPassData());
298
299 $this->assertEquals(2, $this->testObj->getPassCount());
300 }
301
302 public function testAddQuestionTitle(): void
303 {
304 $this->testObj->addQuestionTitle(0, "testString");
305 $this->testObj->addQuestionTitle(1, "testString2");
306
307 $this->assertEquals("testString", $this->testObj->getQuestionTitles()[0]);
308 }
309
310 public function testGetQuestions(): void
311 {
312 $this->assertNull($this->testObj->getQuestions());
313
314 $expected = [
315 "id" => 22,
316 "o_id" => 20,
317 "points" => 15,
318 "sequence" => null
319 ];
320
321 $this->testObj->addQuestion(20, 22, 15, null, 0);
322
323 $this->assertEquals([$expected], $this->testObj->getQuestions());
324 }
325
326 public function testGetQuestion(): void
327 {
328 $expected = [
329 "id" => 22,
330 "o_id" => 20,
331 "points" => 15,
332 "sequence" => null
333 ];
334
335 $this->testObj->addQuestion(20, 22, 15, null, 0);
336
337 $this->assertEquals($expected, $this->testObj->getQuestion(0));
338 }
339
340 public function testGetQuestionCount(): void
341 {
342 $pass = new ilTestEvaluationPassData();
343 $pass->setQuestionCount(5);
344 $this->testObj->addPass(0, $pass);
345
346 $this->assertEquals(5, $this->testObj->getQuestionCount());
347 }
348
352 public function testReachedPoints($input, float $expected): void
353 {
354 $pass = new ilTestEvaluationPassData();
355 $pass->setReachedPoints($input);
356 $this->testObj->addPass(0, $pass);
357
358 $this->assertEquals($expected, $this->testObj->getReachedPoints());
359 }
360
361 public function reachedPointsDataProvider(): array
362 {
363 return [
364 "float X.0" => [25.0, 25.0],
365 "float X.Y" => [25.3, 25.3],
366 "int" => [25, 25.0]
367 ];
368 }
369
370 public function testGetUninitializedReachedPoints(): void
371 {
372 $pass = new ilTestEvaluationPassData();
373 $this->testObj->addPass(0, $pass);
374
375 $this->assertEquals(0.0, $this->testObj->getReachedPoints());
376 }
377
378 public function testGetAvailablePoints(): void
379 {
380 $pass = new ilTestEvaluationPassData();
381 $pass->setMaxPoints(25);
382 $this->testObj->addPass(0, $pass);
383
384 $this->assertEquals(25, $this->testObj->getAvailablePoints());
385 }
386
388 {
389 $pass = new ilTestEvaluationPassData();
390 $pass->setReachedPoints(25);
391 $pass->setMaxPoints(50);
392 $this->testObj->addPass(0, $pass);
393
394 $this->assertEquals(0.5, $this->testObj->getReachedPointsInPercentForPass(0));
395 }
396
397 public function testUserID(): void
398 {
399 $this->testObj->setUserID(120);
400 $this->assertEquals(120, $this->testObj->getUserID());
401 }
402
403 public function testMarkOfficial(): void
404 {
405 $this->testObj->setMarkOfficial("test");
406 $this->assertEquals("test", $this->testObj->getMarkOfficial());
407 }
408}
Class ilTestBaseClass.
Class ilTestEvaluationUserDataTest.
testReachedPoints($input, float $expected)
@dataProvider reachedPointsDataProvider