ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 'mark_official',
53 'mark',
54 'maxpoints',
55 'reached',
56 'user_id',
57 'login',
58 'name',
59 'passScoring'
60 ];
61
62 $this->assertEquals($expected, $this->testObj->__sleep());
63 }
64
65 public function testPassScoring(): void
66 {
67 $passScoring = 1;
68 $this->testObj->setPassScoring($passScoring);
69 $this->assertEquals($passScoring, $this->testObj->getPassScoring());
70 }
71
72 public function testName(): void
73 {
74 $name = 'testName';
75 $this->testObj->setName($name);
76 $this->assertEquals($name, $this->testObj->getName());
77 }
78
79 public function testLogin(): void
80 {
81 $login = 'testLogin';
82 $this->testObj->setLogin($login);
83 $this->assertEquals($login, $this->testObj->getLogin());
84 }
85
86 public function testSubmitted(): void
87 {
88 $this->testObj->setSubmitted(true);
89 $this->assertTrue($this->testObj->isSubmitted());
90
91 $this->testObj->setSubmitted(false);
92 $this->assertFalse($this->testObj->isSubmitted());
93 }
94
95 public function testGetReached(): void
96 {
97 $reachedPoints = 20;
98 $testEvaluationPassData = new ilTestEvaluationPassData();
99 $testEvaluationPassData->setReachedPoints($reachedPoints);
100
101 $this->testObj->addPass(0, $testEvaluationPassData);
102
103 $this->assertEquals($reachedPoints, $this->testObj->getReached());
104 }
105
106 public function testGetMaxpoints(): void
107 {
108 $maxpoints = 20;
109 $testEvaluationPassData = new ilTestEvaluationPassData();
110 $testEvaluationPassData->setMaxPoints($maxpoints);
111
112 $this->testObj->addPass(0, $testEvaluationPassData);
113
114 $this->assertEquals($maxpoints, $this->testObj->getMaxpoints());
115 }
116
117 public function testGetReachedPointsInPercent(): void
118 {
119 $reachedpoints = 15;
120 $maxpoints = 20;
121 $testEvaluationPassData = new ilTestEvaluationPassData();
122 $testEvaluationPassData->setReachedPoints($reachedpoints);
123 $testEvaluationPassData->setMaxPoints($maxpoints);
124
125 $this->testObj->addPass(0, $testEvaluationPassData);
126
127 $this->assertEquals(($reachedpoints / $maxpoints) * 100, $this->testObj->getReachedPointsInPercent());
128 }
129
130 public function testMark(): void
131 {
132 $a_mark = new \ILIAS\Test\Scoring\Marks\Mark('testMark');
133 $this->testObj->setMark($a_mark);
134 $this->assertEquals($a_mark, $this->testObj->getMark());
135 }
136
137 public function testGetQuestionsWorkedThrough(): void
138 {
139 $reachedpoints = 15;
140 $maxpoints = 20;
141 $nrOfAnsweredQuestions = 5;
142 $testEvaluationPassData = new ilTestEvaluationPassData();
143 $testEvaluationPassData->setReachedPoints($reachedpoints);
144 $testEvaluationPassData->setMaxPoints($maxpoints);
145 $testEvaluationPassData->setNrOfAnsweredQuestions($nrOfAnsweredQuestions);
146
147 $this->testObj->addPass(0, $testEvaluationPassData);
148
149 $this->assertEquals($nrOfAnsweredQuestions, $this->testObj->getQuestionsWorkedThrough());
150 }
151
152 public function testGetNumberOfQuestions(): void
153 {
154 $questioncount = 5;
155 $testEvaluationPassData = new ilTestEvaluationPassData();
156 $testEvaluationPassData->setQuestionCount($questioncount);
157
158 $this->testObj->addPass(0, $testEvaluationPassData);
159
160 $this->assertEquals($questioncount, $this->testObj->getNumberOfQuestions());
161 }
162
164 {
165 $questioncount = 5;
166 $nrOfAnsweredQuestions = 3;
167 $testEvaluationPassData = new ilTestEvaluationPassData();
168 $testEvaluationPassData->setQuestionCount($questioncount);
169 $testEvaluationPassData->setNrOfAnsweredQuestions($nrOfAnsweredQuestions);
170
171 $this->testObj->addPass(0, $testEvaluationPassData);
172
173 $this->assertEquals(($nrOfAnsweredQuestions / $questioncount) * 100, $this->testObj->getQuestionsWorkedThroughInPercent());
174 }
175
176 public function testGetTimeOnTask(): void
177 {
178 $workingtime1 = 5;
179 $data1 = new ilTestEvaluationPassData();
180 $data1->setWorkingTime($workingtime1);
181
182 $workingtime2 = 7;
183 $data2 = new ilTestEvaluationPassData();
184 $data2->setWorkingTime($workingtime2);
185
186 $this->testObj->addPass(0, $data1);
187 $this->testObj->addPass(1, $data2);
188
189 $this->assertEquals($workingtime1 + $workingtime2, $this->testObj->getTimeOnTask());
190 }
191
192 public function testFirstVisit(): void
193 {
194 $time = new \DateTimeImmutable();
195 $this->testObj->setFirstVisit($time);
196
197 $this->assertEquals($time, $this->testObj->getFirstVisit());
198 }
199
200 public function testLastVisit(): void
201 {
202 $time = new \DateTimeImmutable();
203 $this->testObj->setLastVisit($time);
204
205 $this->assertEquals($time, $this->testObj->getLastVisit());
206 }
207
208 public function testGetPasses(): void
209 {
210 $workingtime1 = 5;
211 $data1 = new ilTestEvaluationPassData();
212 $data1->setWorkingTime($workingtime1);
213
214 $workingtime2 = 7;
215 $data2 = new ilTestEvaluationPassData();
216 $data2->setWorkingTime($workingtime2);
217
218 $this->testObj->addPass(0, $data1);
219 $this->testObj->addPass(1, $data2);
220
221 $this->assertEquals([$data1, $data2], $this->testObj->getPasses());
222 }
223
224 public function testAddPasses(): void
225 {
226 $this->assertEquals(0, $this->testObj->getPassCount());
227
228 $data = [
229 0,
230 0,
231 1,
232 1
233 ];
234
235 foreach ($data as $value) {
236 $this->testObj->addPass($value, new ilTestEvaluationPassData());
237 }
238
239 $this->assertEquals(count(array_unique($data)), $this->testObj->getPassCount());
240 }
241
242 public function testGetPass(): void
243 {
244 $this->assertEquals(0, $this->testObj->getPassCount());
245
246 $data = [
247 0 => $expected = new ilTestEvaluationPassData(),
248 1 => new ilTestEvaluationPassData(),
249 2 => new ilTestEvaluationPassData()
250 ];
251
252 foreach ($data as $key => $value) {
253 $this->testObj->addPass($key, $value);
254 }
255
256 $this->assertEquals($expected, $this->testObj->getPass(0));
257 }
258
259 public function testGetPassCount(): void
260 {
261 $this->assertEquals(0, $this->testObj->getPassCount());
262
263 $data = [
264 0,
265 0,
266 1,
267 1
268 ];
269
270 foreach ($data as $value) {
271 $this->testObj->addPass($value, new ilTestEvaluationPassData());
272 }
273
274 $this->assertEquals(count(array_unique($data)), $this->testObj->getPassCount());
275 }
276
277 public function testAddQuestionTitle(): void
278 {
279 $question_title = 'testString';
280 $question_id = 0;
281 $this->testObj->addQuestionTitle($question_id, $question_title);
282
283 $this->assertEquals($question_title, $this->testObj->getQuestionTitles()[$question_id]);
284 }
285
286 public function testGetQuestions(): void
287 {
288 $this->assertNull($this->testObj->getQuestions());
289
290 $expected = [
291 'id' => $question_id = 22,
292 'o_id' => $original_id = 20,
293 'points' => $max_points = 15,
294 'sequence' => $sequence = null
295 ];
296
297 $this->testObj->addQuestion($original_id, $question_id, $max_points, $sequence, 0);
298
299 $this->assertEquals([$expected], $this->testObj->getQuestions());
300 }
301
302 public function testGetQuestion(): void
303 {
304 $expected = [
305 'id' => $question_id = 22,
306 'o_id' => $original_id = 20,
307 'points' => $max_points = 15.0,
308 'sequence' => $sequence = null
309 ];
310
311 $pass = 0;
312
313 $this->testObj->addQuestion($original_id, $question_id, $max_points, $sequence, $pass);
314
315 $this->assertEquals($expected, $this->testObj->getQuestion($pass));
316 }
317
318 public function testGetQuestionCount(): void
319 {
320 $questioncount = 5;
321 $pass = new ilTestEvaluationPassData();
322 $pass->setQuestionCount($questioncount);
323 $this->testObj->addPass(0, $pass);
324
325 $this->assertEquals($questioncount, $this->testObj->getQuestionCount());
326 }
327
328 public function testReachedPoints(): void
329 {
330 $reachedpoints = 25;
331 $pass = new ilTestEvaluationPassData();
332 $pass->setReachedPoints($reachedpoints);
333 $this->testObj->addPass(0, $pass);
334
335 $this->assertEquals($reachedpoints, $this->testObj->getReachedPoints());
336 }
337
338 public function testGetAvailablePoints(): void
339 {
340 $maxpoints = 25;
341 $pass = new ilTestEvaluationPassData();
342 $pass->setMaxPoints($maxpoints);
343 $this->testObj->addPass(0, $pass);
344
345 $this->assertEquals($maxpoints, $this->testObj->getAvailablePoints());
346 }
347
349 {
350 $reachedpoints = 25;
351 $maxpoints = 50;
352 $pass = new ilTestEvaluationPassData();
353 $pass->setReachedPoints($reachedpoints);
354 $pass->setMaxPoints($maxpoints);
355 $pass_nr = 0;
356 $this->testObj->addPass($pass_nr, $pass);
357
358 $this->assertEquals($reachedpoints / $maxpoints, $this->testObj->getReachedPointsInPercentForPass($pass_nr));
359 }
360
361 public function testUserID(): void
362 {
363 $user_id = 120;
364 $this->testObj->setUserID($user_id);
365 $this->assertEquals($user_id, $this->testObj->getUserID());
366 }
367}
Class ilTestBaseClass.
Class ilTestEvaluationUserDataTest.