5 require_once(__DIR__.
"/mocks.php");
18 PHPUnit_Framework_Error_Deprecated::$enabled = FALSE;
20 require_once(
"./Modules/StudyProgramme/classes/class.ilObjStudyProgramme.php");
22 include_once(
"./Services/PHPUnit/classes/class.ilUnitUtil.php");
23 ilUnitUtil::performInitialisation();
26 $this->root->putInTree(ROOT_FOLDER_ID);
35 $this->root->addNode($this->node1);
36 $this->root->addNode($this->node2);
37 $this->node1->addLeaf($this->leaf1);
38 $this->node2->addLeaf($this->leaf2);
49 $this->root->delete();
67 return array($this->root->assignUser($user->getId()), $user);
76 $root_progresses = $this->root->getProgressesOf($user->getId());
77 $this->assertCount(1, $root_progresses);
78 $root_progress = $root_progresses[0];
80 , $root_progress->getStatus());
81 $this->assertEquals( $this->root->getPoints()
82 , $root_progress->getAmountOfPoints());
83 $this->assertEquals(0, $root_progress->getCurrentAmountOfPoints());
84 $this->assertEquals($this->root->getId(), $root_progress->getStudyProgramme()->getId());
85 $this->assertEquals($ass->getId(), $root_progress->getAssignment()->getId());
86 $this->assertEquals($user->getId(), $root_progress->getUserId());
87 $this->assertNull($root_progress->getLastChangeBy());
88 $this->assertNull($root_progress->getCompletionBy());
90 $node1_progresses = $this->node1->getProgressesOf($user->getId());
91 $this->assertCount(1, $node1_progresses);
92 $node1_progress = $node1_progresses[0];
94 , $node1_progress->getStatus());
95 $this->assertEquals( $this->node1->getPoints()
96 , $node1_progress->getAmountOfPoints());
97 $this->assertEquals(0, $node1_progress->getCurrentAmountOfPoints());
98 $this->assertEquals($this->node1->getId(), $node1_progress->getStudyProgramme()->getId());
99 $this->assertEquals($ass->getId(), $node1_progress->getAssignment()->getId());
100 $this->assertEquals($user->getId(), $node1_progress->getUserId());
101 $this->assertNull($node1_progress->getLastChangeBy());
102 $this->assertNull($node1_progress->getCompletionBy());
104 $node2_progresses = $this->node2->getProgressesOf($user->getId());
105 $this->assertCount(1, $node2_progresses);
106 $node2_progress = $node2_progresses[0];
108 , $node2_progress->getStatus());
109 $this->assertEquals( $this->node2->getPoints()
110 , $node2_progress->getAmountOfPoints());
111 $this->assertEquals(0, $node2_progress->getCurrentAmountOfPoints());
112 $this->assertEquals($this->node2->getId(), $node2_progress->getStudyProgramme()->getId());
113 $this->assertEquals($ass->getId(), $node2_progress->getAssignment()->getId());
114 $this->assertEquals($user->getId(), $node2_progress->getUserId());
115 $this->assertNull($node2_progress->getLastChangeBy());
116 $this->assertNull($node2_progress->getCompletionBy());
128 $root_progresses = $this->root->getProgressesOf($user->getId());
129 $root_progress = $root_progresses[0];
131 , $root_progress->getStatus());
133 $node1_progresses = $this->node1->getProgressesOf($user->getId());
134 $node1_progress = $node1_progresses[0];
136 , $node1_progress->getStatus());
138 $node2_progresses = $this->node2->getProgressesOf($user->getId());
139 $node2_progress = $node2_progresses[0];
141 , $node2_progress->getStatus());
153 $root_progresses = $this->root->getProgressesOf($user->getId());
154 $root_progress = $root_progresses[0];
156 , $root_progress->getStatus());
158 $node1_progresses = $this->node1->getProgressesOf($user->getId());
159 $node1_progress = $node1_progresses[0];
161 , $node1_progress->getStatus());
163 $node2_progresses = $this->node2->getProgressesOf($user->getId());
164 $node2_progress = $node2_progresses[0];
166 , $node2_progress->getStatus());
176 $root_progresses = $this->root->getProgressesOf($user->getId());
177 $this->assertCount(1, $root_progresses);
187 $USER_ID = $user2->getId();
189 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
190 $node1_progress = array_shift($this->node1->getProgressesOf($user->getId()));
192 $node2_progress = array_shift($this->node2->getProgressesOf($user->getId()));
197 $ts_before_change = $node2_progress->getLastChange()->get(
IL_CAL_DATETIME);
198 $node2_progress->markAccredited($USER_ID);
199 $ts_after_change = $node2_progress->getLastChange()->get(
IL_CAL_DATETIME);
201 $this->assertTrue($node2_progress->isSuccessful());
202 $this->assertEquals($root_progress->getAmountOfPoints(), $root_progress->getCurrentAmountOfPoints());
208 $this->assertEquals($USER_ID, $node2_progress->getCompletionBy());
209 $this->assertLessThanOrEqual($ts_before_change, $ts_after_change);
219 $USER_ID = $user2->getId();
221 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
222 $node1_progress = array_shift($this->node1->getProgressesOf($user->getId()));
223 $node2_progress = array_shift($this->node2->getProgressesOf($user->getId()));
229 $ts_before_change = $node2_progress->getLastChange()->get(
IL_CAL_DATETIME);
230 $node2_progress->markAccredited($USER_ID);
231 $node2_progress->unmarkAccredited();
232 $ts_after_change = $node2_progress->getLastChange()->get(
IL_CAL_DATETIME);
239 $this->assertEquals(NULL, $node2_progress->getCompletionBy());
240 $this->assertLessThanOrEqual($ts_before_change, $ts_after_change);
251 $USER_ID = $user2->getId();
253 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
254 $node1_progress = array_shift($this->node1->getProgressesOf($user->getId()));
255 $node2_progress = array_shift($this->node2->getProgressesOf($user->getId()));
256 $ts_before_change = $node2_progress->getLastChange()->get(
IL_CAL_DATETIME);
257 $node2_progress->markNotRelevant($USER_ID);
258 $ts_after_change = $node2_progress->getLastChange()->get(
IL_CAL_DATETIME);
262 $this->assertEquals($USER_ID, $node2_progress->getCompletionBy());
263 $this->assertLessThanOrEqual($ts_before_change, $ts_after_change);
264 $this->assertTrue($node2_progress->hasIndividualModifications());
275 $this->root->addNode($node3);
277 $node3_progress = array_shift($node3->getProgressesOf($user->getId()));
278 $this->assertNotNull($node3_progress);
289 $NEW_AMOUNT_OF_POINTS_1 = 205;
292 $node2_progress1 = array_shift($this->node2->getProgressesOf($user1->getId()));
293 $node2_progress1->setRequiredAmountOfPoints($NEW_AMOUNT_OF_POINTS_1, $this->user->getId());
295 $this->assertEquals($NEW_AMOUNT_OF_POINTS_1, $node2_progress1->getAmountOfPoints());
304 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
305 $node1_progress = array_shift($this->node1->getProgressesOf($user->getId()));
306 $node2_progress = array_shift($this->node2->getProgressesOf($user->getId()));
319 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
320 $node1_progress = array_shift($this->node1->getProgressesOf($user->getId()));
321 $node2_progress = array_shift($this->node2->getProgressesOf($user->getId()));
334 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
335 $node1_progress = array_shift($this->node1->getProgressesOf($user->getId()));
336 $node2_progress = array_shift($this->node2->getProgressesOf($user->getId()));
338 $this->assertTrue($root_progress->canBeCompleted());
339 $this->assertTrue($node1_progress->canBeCompleted());
340 $this->assertTrue($node2_progress->canBeCompleted());
344 $NEW_AMOUNT_OF_POINTS = 3003;
348 $this->root->setPoints($NEW_AMOUNT_OF_POINTS)
354 $this->assertLessThan($NEW_AMOUNT_OF_POINTS, $this->node1->getPoints() + $this->node2->getPoints());
356 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
357 $this->assertFalse($root_progress->canBeCompleted());
361 $NEW_AMOUNT_OF_POINTS = 3003;
366 $this->root->addNode($node3);
367 $node3->setPoints($NEW_AMOUNT_OF_POINTS)
376 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
377 $node3_progress = array_shift($node3->getProgressesOf($user->getId()));
379 $this->assertFalse($root_progress->canBeCompleted());
380 $this->assertFalse($node3_progress->canBeCompleted());
391 $root_progresses = $this->root->getProgressesOf($user->getId());
392 $this->assertCount(0, $root_progresses);
393 $node1_progresses = $this->root->getProgressesOf($user->getId());
394 $this->assertCount(0, $node1_progresses);
395 $node2_progresses = $this->root->getProgressesOf($user->getId());
396 $this->assertCount(0, $node2_progresses);
406 $NEW_AMOUNT_OF_POINTS = 201;
409 $this->root->setPoints($NEW_AMOUNT_OF_POINTS)
412 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
424 $NEW_AMOUNT_OF_POINTS = 202;
427 $this->root->setPoints($NEW_AMOUNT_OF_POINTS)
430 $ass->updateFromProgram();
431 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
432 $this->assertEquals($NEW_AMOUNT_OF_POINTS, $root_progress->getAmountOfPoints());
444 $NEW_AMOUNT_OF_POINTS = 203;
447 $this->root->setPoints($NEW_AMOUNT_OF_POINTS)
450 $root_progress = array_shift($this->root->getProgressesOf($user->getId()));
451 $ass->updateFromProgram();
452 $this->assertEquals($NEW_AMOUNT_OF_POINTS, $root_progress->getAmountOfPoints());
468 $NEW_AMOUNT_OF_POINTS_1 = 205;
470 $NEW_AMOUNT_OF_POINTS_2 = 206;
472 $this->assertNotEquals($NEW_AMOUNT_OF_POINTS_1, $NEW_AMOUNT_OF_POINTS_2);
474 $node2_progress1 = array_shift($this->node2->getProgressesOf($user1->getId()));
475 $node2_progress2 = array_shift($this->node2->getProgressesOf($user2->getId()));
477 $node2_progress1->setRequiredAmountOfPoints($NEW_AMOUNT_OF_POINTS_1, $this->user->getId());
479 $this->node2->setPoints($NEW_AMOUNT_OF_POINTS_2)
481 $this->root->updateAllAssignments();
483 $this->assertEquals($NEW_AMOUNT_OF_POINTS_1, $node2_progress1->getAmountOfPoints());
484 $this->assertEquals($NEW_AMOUNT_OF_POINTS_2, $node2_progress2->getAmountOfPoints());
500 $progress = $this->node1->getProgressForAssignment($ass1->getId());
502 , $progress->getStatus());
503 $progress->markAccredited($this->user->getId());
514 $progress = $this->node1->getProgressForAssignment($ass1->getId());
515 $this->assertFalse($progress->hasIndividualModifications());
524 $progress = $this->node1->getProgressForAssignment($ass1->getId());
525 $progress->setRequiredAmountOfPoints(1000, $this->user->getId());
526 $this->assertTrue($progress->hasIndividualModifications());
535 $progress = $this->node1->getProgressForAssignment($ass1->getId());
536 $progress->markNotRelevant($this->user->getId());
537 $this->assertTrue($progress->hasIndividualModifications());
546 $progress = $this->node1->getProgressForAssignment($ass1->getId());
547 $progress->markAccredited($this->user->getId());
548 $this->assertFalse($progress->hasIndividualModifications());
558 $USER_ID = $user2->getId();
560 $this->node1->setTitle(
"node1");
561 $this->node1->update();
562 $this->node2->setTitle(
"node2");
563 $this->node2->update();
565 $names = $this->root->getProgressForAssignment($ass->getId())
566 ->getNamesOfCompletedOrAccreditedChildren();
567 $this->assertEquals($names, array());
569 $this->node1->getProgressForAssignment($ass->getId())->markAccredited($USER_ID);
570 $names = $this->root->getProgressForAssignment($ass->getId())
571 ->getNamesOfCompletedOrAccreditedChildren();
572 $this->assertEquals($names, array(
"node1"));
574 $this->node2->getProgressForAssignment($ass->getId())->markAccredited($USER_ID);
575 $names = $this->root->getProgressForAssignment($ass->getId())
576 ->getNamesOfCompletedOrAccreditedChildren();
577 $this->assertEquals($names, array(
"node1",
"node2"));
585 $depth1->putInTree(ROOT_FOLDER_ID);
586 $depth1->addNode($depth2);
587 $depth2->addNode($depth3);
588 $depth3->addNode($depth4);
596 $assignment = $depth1->assignUser($user->getId());
597 $progress4 = $depth4->getProgressForAssignment($assignment->getId());
598 $progress4->markAccredited(6);
600 $progress1 = $depth1->getProgressForAssignment($assignment->getId());
601 $progress2 = $depth2->getProgressForAssignment($assignment->getId());
602 $progress3 = $depth3->getProgressForAssignment($assignment->getId());
604 $this->assertTrue($progress1->isSuccessful());
605 $this->assertTrue($progress2->isSuccessful());
606 $this->assertTrue($progress3->isSuccessful());
607 $this->assertTrue($progress4->isSuccessful());
testHasDeviationToProgram3()
testCompletionOnDeeplyNestedProgresses()
testHasDeviationToProgram4()
testNewNodesAreNotRelevant()
testHasDeviationToProgram1()
testExplicitPointUpdate1()
testExplicitPointUpdate2()
testOutdatedNodesCantBeSetToRelevant()
QUA-Objekte, welche "Inaktiv" sind können bei Studierenden-Studienplänen nicht von "nicht relevant" a...
testUserDeletionDeletesAssignments()
testMaximimPossibleAmountOfPoints1()
testInitialProgressActive()
testNoImplicitPointUpdate()
testHasDeviationToProgram2()
testInitialProgressOutdated()
const STATUS_NOT_RELEVANT
testGetNamesOfCompletedOrAccreditedChildren()
testInitialProgressDraft()
static createInstance()
Create an instance of ilObjStudyProgramme, put in cache.
testMaximimPossibleAmountOfPoints2()
TestCase for the progress of users at a programme.
testIndividualRequiredPoints()
testNoUpdateOnModifiedNodes()