ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilPrgInvalidateExpiredProgressesCronJobTest.php
Go to the documentation of this file.
1 <?php
2 
6 class 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 }
$DIC
Definition: xapitoken.php:46
static createInstance()
Create an instance of ilObjStudyProgramme, put in cache.