ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTestEvaluationUserDataTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(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 
387  public function testGetReachedPointsInPercentForPass(): void
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 ilTestEvaluationUserDataTest.
testReachedPoints($input, float $expected)
reachedPointsDataProvider
Class ilTestBaseClass.