ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilPrgInvalidateExpiredProgressesCronJobTest.php
Go to the documentation of this file.
1<?php
2
6class ilPrgInvalidateExpiredProgressesCronJobTest extends \PHPUnit\Framework\TestCase
7{
8 protected $backupGlobals = false;
9
10 protected static $instances = [];
11 protected static $users = [];
12
13 public static function setUpBeforeClass() : void
14 {
15 PHPUnit_Framework_Error_Deprecated::$enabled = false;
16
17 global $DIC;
18 if (!$DIC) {
19 try {
20 include_once("./Services/PHPUnit/classes/class.ilUnitUtil.php");
21 ilUnitUtil::performInitialisation();
22 } catch (Exception $e) {
23 }
24 }
25 }
26
27 public function test_init()
28 {
30 $this->assertInstanceOf(ilCronJob::class, $job);
31 return $job;
32 }
33
37 public function test_run($job)
38 {
39 $usr1 = $this->newUser();
40 $usr2 = $this->newUser();
41 $usr3 = $this->newUser();
42 $usr4 = $this->newUser();
43
44 $prg1 = $this->newPrg();
45 $prg2 = $this->newPrg();
46
47 $prg1->putInTree(ROOT_FOLDER_ID);
48 $prg1->addNode($prg2);
49
50 $val_date_ref = new DateTime();
51 $val_date_ref->sub(new DateInterval('P1D'));
52 $prg1->setValidityOfQualificationDate($val_date_ref);
54 $prg1->update();
55
57
58 $assignment1 = $prg1->assignUser($usr1->getId(), 6);
59 $assignment2 = $prg1->assignUser($usr2->getId(), 6);
60 $assignment3 = $prg1->assignUser($usr3->getId(), 6);
61 $assignment4 = $prg1->assignUser($usr4->getId(), 6);
62
63
64 $progress = $prg2->getProgressForAssignment($assignment1->getId());
65 $progress->markAccredited(6);
66
67 $this->assertTrue($prg1->getProgressForAssignment($assignment1->getId())->isSuccessful());
68
69 $progress = $prg1->getProgressForAssignment($assignment2->getId());
70 $progress->markAccredited(6);
71
72 $this->assertTrue($prg1->getProgressForAssignment($assignment2->getId())->isSuccessful());
73
74 $prg1->setValidityOfQualificationDate(null);
75 $prg1->update();
76
77 $progress = $prg2->getProgressForAssignment($assignment3->getId());
78 $progress->markAccredited(6);
79
80 $progress = $prg1->getProgressForAssignment($assignment4->getId());
81 $progress->markAccredited(6);
82
83
84 $job->run();
85 $prgrs = $prg1->getProgressForAssignment($assignment1->getId());
86 $this->assertEquals(
88 $prgrs->getStatus()
89 );
90 $this->assertTrue($prgrs->isInvalidated());
91 $prgrs = $prg1->getProgressForAssignment($assignment2->getId());
92 $this->assertEquals(
94 $prgrs->getStatus()
95 );
96 $this->assertTrue($prgrs->isInvalidated());
97 $prgrs = $prg1->getProgressForAssignment($assignment3->getId());
98 $this->assertEquals(
100 $prgrs->getStatus()
101 );
102 $this->assertFalse($prgrs->isInvalidated());
103 $prgrs = $prg1->getProgressForAssignment($assignment4->getId());
104 $this->assertEquals(
106 $prgrs->getStatus()
107 );
108 $this->assertFalse($prgrs->isInvalidated());
109 }
110
111 public static function tearDownAfterClass() : void
112 {
113 foreach (self::$instances as $instance) {
114 try {
115 $instance->delete();
116 } catch (Exception $e) {
117 }
118 }
119 foreach (self::$users as $user) {
120 $user->delete();
121 }
122 }
123
124
125 protected function newUser()
126 {
127 $user = new ilObjUser();
128 $user->create();
129 self::$users[] = $user;
130 return $user;
131 }
132
133 protected function newPrg()
134 {
136 self::$instances[] = $prg;
137 return $prg;
138 }
139}
An exception for terminatinating execution or to throw for unit testing.
static createInstance()
Create an instance of ilObjStudyProgramme, put in cache.
$DIC
Definition: xapitoken.php:46