ILIAS  release_8 Revision v8.24
ilStudyProgrammeCronAboutToExpireTest Class Reference
+ Inheritance diagram for ilStudyProgrammeCronAboutToExpireTest:
+ Collaboration diagram for ilStudyProgrammeCronAboutToExpireTest:

Public Member Functions

 testAboutToExpireForNoRelevantProgrammes ()
 
 testAboutToExpireForRelevantProgrammes ()
 
 testAboutToExpireEvents ()
 

Protected Member Functions

 setUp ()
 

Protected Attributes

ilPrgUserNotRestartedCronJobMock $job
 
ilStudyProgrammeSettingsDBRepository $settings_repo
 
ilPRGAssignmentDBRepository $assignment_repo
 
ProgrammeEventsMock $events
 

Detailed Description

Definition at line 46 of file ilStudyProgrammeCronAboutToExpireTest.php.

Member Function Documentation

◆ setUp()

ilStudyProgrammeCronAboutToExpireTest::setUp ( )
protected

Definition at line 53 of file ilStudyProgrammeCronAboutToExpireTest.php.

53 : void
54 {
55 $this->events = new ProgrammeEventsMock();
56 $this->settings_repo = $this->getMockBuilder(ilStudyProgrammeSettingsDBRepository::class)
57 ->disableOriginalConstructor()
58 ->onlyMethods(['getProgrammeIdsWithMailsForExpiringValidity'])
59 ->getMock();
60
61 $this->adapter = $this->getMockBuilder(ilPrgNotRestarted::class)
62 ->setConstructorArgs([$this->settings_repo, $this->events])
63 ->getMock();
64
65 $this->real_adapter = new ilPrgNotRestarted($this->settings_repo, $this->events);
66
67 $this->assignment_repo = $this->getMockBuilder(ilPRGAssignmentDBRepository::class)
68 ->disableOriginalConstructor()
69 ->onlyMethods(['getAboutToExpire', 'storeExpiryInfoSentFor'])
70 ->getMock();
71
72 $this->job = new ilPrgUserNotRestartedCronJobMock($this->assignment_repo, $this->adapter);
73 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...

◆ testAboutToExpireEvents()

ilStudyProgrammeCronAboutToExpireTest::testAboutToExpireEvents ( )

Definition at line 123 of file ilStudyProgrammeCronAboutToExpireTest.php.

123 : void
124 {
126 $ass1 = (new ilPRGAssignment(42, 7))->withProgressTree($pgs1);
127 $ass2 = (new ilPRGAssignment(43, 8))->withProgressTree($pgs1);
128
129 $this->settings_repo
130 ->expects($this->once())
131 ->method('getProgrammeIdsWithMailsForExpiringValidity')
132 ->willReturn([
133 42=>3,
134 43=>3
135 ]);
136
137 $this->assignment_repo
138 ->expects($this->once())
139 ->method('getAboutToExpire')
140 ->willReturn([$ass1, $ass2]);
141
142 $job = new ilPrgUserNotRestartedCronJobMock($this->assignment_repo, $this->real_adapter);
143 $job->run();
144
145 $this->assertEquals(2, count($job->logs));
146 $expected_events = [
147 ['informUserToRestart', ["ass_id" => 42, 'root_prg_id' => 11]],
148 ['informUserToRestart', ["ass_id" => 43, 'root_prg_id' => 11]]
149 ];
150 $this->assertEquals($expected_events, $this->events->raised);
151 }
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
A Progress is the status of a user on a single node of an assignment; it is unique by assignment_id:u...

References $job, ilPrgUserNotRestartedCronJob\run(), and ilPRGProgress\STATUS_COMPLETED.

+ Here is the call graph for this function:

◆ testAboutToExpireForNoRelevantProgrammes()

ilStudyProgrammeCronAboutToExpireTest::testAboutToExpireForNoRelevantProgrammes ( )

Definition at line 75 of file ilStudyProgrammeCronAboutToExpireTest.php.

75 : void
76 {
77 $this->adapter
78 ->expects($this->once())
79 ->method('getRelevantProgrammeIds')
80 ->willReturn([]);
81 $this->assignment_repo
82 ->expects($this->never())
83 ->method('getAboutToExpire');
84 $this->assignment_repo
85 ->expects($this->never())
86 ->method('storeExpiryInfoSentFor');
87 $this->adapter
88 ->expects($this->never())
89 ->method('actOnSingleAssignment');
90 $this->job->run();
91 }

◆ testAboutToExpireForRelevantProgrammes()

ilStudyProgrammeCronAboutToExpireTest::testAboutToExpireForRelevantProgrammes ( )

Definition at line 93 of file ilStudyProgrammeCronAboutToExpireTest.php.

93 : void
94 {
96 $ass1 = (new ilPRGAssignment(42, 7))
97 ->withProgressTree($pgs1);
98 $ass2 = (new ilPRGAssignment(43, 8))
99 ->withProgressTree($pgs1);
100
101 $this->adapter
102 ->expects($this->once())
103 ->method('getRelevantProgrammeIds')
104 ->willReturn([
105 1=>3
106 ]);
107 $this->assignment_repo
108 ->expects($this->once())
109 ->method('getAboutToExpire')
110 ->willReturn([$ass1, $ass2]);
111
112 $this->assignment_repo
113 ->expects($this->exactly(2))
114 ->method('storeExpiryInfoSentFor');
115
116 $this->adapter
117 ->expects($this->exactly(2))
118 ->method('actOnSingleAssignment');
119
120 $this->job->run();
121 }

References ilPRGProgress\STATUS_COMPLETED.

Field Documentation

◆ $assignment_repo

ilPRGAssignmentDBRepository ilStudyProgrammeCronAboutToExpireTest::$assignment_repo
protected

Definition at line 50 of file ilStudyProgrammeCronAboutToExpireTest.php.

◆ $events

ProgrammeEventsMock ilStudyProgrammeCronAboutToExpireTest::$events
protected

Definition at line 51 of file ilStudyProgrammeCronAboutToExpireTest.php.

◆ $job

ilPrgUserNotRestartedCronJobMock ilStudyProgrammeCronAboutToExpireTest::$job
protected

Definition at line 48 of file ilStudyProgrammeCronAboutToExpireTest.php.

Referenced by testAboutToExpireEvents().

◆ $settings_repo

ilStudyProgrammeSettingsDBRepository ilStudyProgrammeCronAboutToExpireTest::$settings_repo
protected

Definition at line 49 of file ilStudyProgrammeCronAboutToExpireTest.php.


The documentation for this class was generated from the following file: