ILIAS  trunk Revision v11.0_alpha-1723-g8e69f309bab
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilPrgRestartAssignmentsCronJobTest Class Reference
+ Inheritance diagram for ilPrgRestartAssignmentsCronJobTest:
+ Collaboration diagram for ilPrgRestartAssignmentsCronJobTest:

Public Member Functions

 testRestartAssignmentsForNoRelevantProgrammes ()
 
 testRestartAssignmentsForRelevantProgrammes ()
 
 testRestartAssignmentsEvents ()
 

Protected Member Functions

 setUp ()
 

Protected Attributes

ilPrgRestartAssignmentsCronJobMock $job
 
ilStudyProgrammeSettingsDBRepository $settings_repo
 
ilPRGAssignmentDBRepository $assignment_repo
 
ilPrgRestart $adapter
 
ilPrgRestart $real_adapter
 
ProgrammeEventsMock $events
 
ilObjStudyProgramme $prg
 

Detailed Description

Definition at line 53 of file ilPrgRestartAssignmentsCronJobTest.php.

Member Function Documentation

◆ setUp()

ilPrgRestartAssignmentsCronJobTest::setUp ( )
protected

Definition at line 63 of file ilPrgRestartAssignmentsCronJobTest.php.

63  : void
64  {
65  $this->events = new ProgrammeEventsMock();
66 
67  $this->settings_repo = $this->getMockBuilder(ilStudyProgrammeSettingsDBRepository::class)
68  ->disableOriginalConstructor()
69  ->onlyMethods(['getProgrammeIdsWithReassignmentForExpiringValidity'])
70  ->getMock();
71 
72  $this->adapter = $this->getMockBuilder(ilPrgRestart::class)
73  ->setConstructorArgs([$this->settings_repo, $this->events])
74  ->getMock();
75 
76  $this->real_adapter = new ilPrgRestart($this->settings_repo, $this->events);
77 
78  $this->assignment_repo = $this->getMockBuilder(ilPRGAssignmentDBRepository::class)
79  ->disableOriginalConstructor()
80  ->onlyMethods(['getAboutToExpire', 'store'])
81  ->getMock();
82 
83  $this->prg = $this->getMockBuilder(ilObjStudyProgramme::class)
84  ->disableOriginalConstructor()
85  ->onlyMethods(['getApplicableMembershipSourceForUser', 'getSettings', 'assignUser', 'getRefIdFor'])
86  ->getMock();
87 
88  $this->job = new ilPrgRestartAssignmentsCronJobMock($this->assignment_repo, $this->adapter, $this->prg);
89  }

◆ testRestartAssignmentsEvents()

ilPrgRestartAssignmentsCronJobTest::testRestartAssignmentsEvents ( )

Definition at line 175 of file ilPrgRestartAssignmentsCronJobTest.php.

References ilPrgRestartAssignmentsCronJob\run(), and ilPRGProgress\STATUS_COMPLETED.

175  : void
176  {
178  $ass1 = (new ilPRGAssignment(42, 7))->withProgressTree($pgs1);
179  $ass2 = (new ilPRGAssignment(43, 8))->withProgressTree($pgs1)
180  ->withManuallyAssigned(true);
181 
182  $this->settings_repo
183  ->expects($this->once())
184  ->method('getProgrammeIdsWithReassignmentForExpiringValidity')
185  ->willReturn([
186  42 => 3,
187  43 => 3
188  ]);
189 
190  $this->assignment_repo
191  ->expects($this->once())
192  ->method('getAboutToExpire')
193  ->willReturn([$ass1, $ass2]);
194  $this->prg
195  ->expects($this->exactly(2))
196  ->method('assignUser')
197  ->will($this->onConsecutiveCalls($ass1, $ass2));
198 
199  $job = new ilPrgRestartAssignmentsCronJobMock($this->assignment_repo, $this->real_adapter, $this->prg);
200  $job->run();
201 
202  $this->assertEquals(2, count($job->logs));
203  $expected_events = [
204  ['userReAssigned', ["ass_id" => 42, 'root_prg_id' => 11]],
205  ['userReAssigned', ["ass_id" => 43, 'root_prg_id' => 11]]
206  ];
207  $this->assertEquals($expected_events, $this->events->raised);
208  }
A Progress is the status of a user on a single node of an assignment; it is unique by assignment_id:u...
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
+ Here is the call graph for this function:

◆ testRestartAssignmentsForNoRelevantProgrammes()

ilPrgRestartAssignmentsCronJobTest::testRestartAssignmentsForNoRelevantProgrammes ( )

Definition at line 91 of file ilPrgRestartAssignmentsCronJobTest.php.

91  : void
92  {
93  $this->adapter
94  ->expects($this->once())
95  ->method('getRelevantProgrammeIds')
96  ->willReturn([]);
97  $this->assignment_repo
98  ->expects($this->never())
99  ->method('getAboutToExpire');
100  $this->assignment_repo
101  ->expects($this->never())
102  ->method('store');
103  $this->adapter
104  ->expects($this->never())
105  ->method('actOnSingleAssignment');
106  $this->job->run();
107  }

◆ testRestartAssignmentsForRelevantProgrammes()

ilPrgRestartAssignmentsCronJobTest::testRestartAssignmentsForRelevantProgrammes ( )

Definition at line 109 of file ilPrgRestartAssignmentsCronJobTest.php.

References null, and ilPRGProgress\STATUS_COMPLETED.

109  : void
110  {
112  $ass1 = (new ilPRGAssignment(42, 7))
113  ->withProgressTree($pgs1)
114  ->withManuallyAssigned(false);//will not be restarted
115  $ass2 = (new ilPRGAssignment(43, 8))
116  ->withProgressTree($pgs1)
117  ->withManuallyAssigned(true);
118  $this->adapter
119  ->expects($this->once())
120  ->method('getRelevantProgrammeIds')
121  ->willReturn([
122  1 => 3
123  ]);
124  $this->assignment_repo
125  ->expects($this->once())
126  ->method('getAboutToExpire')
127  ->willReturn([$ass1, $ass2]);
128 
129  $this->assignment_repo
130  ->expects($this->exactly(1))
131  ->method('store');
132 
133  $validity_settings = $this->getMockBuilder(ilStudyProgrammeValidityOfAchievedQualificationSettings::class)
134  ->disableOriginalConstructor()
135  ->onlyMethods(['getRestartRecheck'])
136  ->getMock();
137 
138  $validity_settings
139  ->expects($this->exactly(2))
140  ->method('getRestartRecheck')
141  ->willReturn(true);
142 
143  $settings = $this->getMockBuilder(ilStudyProgrammeSettings::class)
144  ->disableOriginalConstructor()
145  ->onlyMethods(['getValidityOfQualificationSettings'])
146  ->getMock();
147  $settings
148  ->expects($this->exactly(2))
149  ->method('getValidityOfQualificationSettings')
150  ->willReturn($validity_settings);
151 
152  $this->prg
153  ->expects($this->exactly(2))
154  ->method('getSettings')
155  ->willReturn($settings);
156 
157  $this->prg
158  ->expects($this->exactly(1))
159  ->method('getApplicableMembershipSourceForUser')
160  ->willReturn(null);
161 
162  $this->prg
163  ->expects($this->exactly(1))
164  ->method('assignUser')
165  ->willReturn($ass1);
166 
167 
168  $this->adapter
169  ->expects($this->exactly(1))
170  ->method('actOnSingleAssignment');
171 
172  $this->job->run();
173  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
A Progress is the status of a user on a single node of an assignment; it is unique by assignment_id:u...
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...

Field Documentation

◆ $adapter

ilPrgRestart ilPrgRestartAssignmentsCronJobTest::$adapter
protected

Definition at line 58 of file ilPrgRestartAssignmentsCronJobTest.php.

◆ $assignment_repo

ilPRGAssignmentDBRepository ilPrgRestartAssignmentsCronJobTest::$assignment_repo
protected

Definition at line 57 of file ilPrgRestartAssignmentsCronJobTest.php.

◆ $events

ProgrammeEventsMock ilPrgRestartAssignmentsCronJobTest::$events
protected

Definition at line 60 of file ilPrgRestartAssignmentsCronJobTest.php.

◆ $job

ilPrgRestartAssignmentsCronJobMock ilPrgRestartAssignmentsCronJobTest::$job
protected

Definition at line 55 of file ilPrgRestartAssignmentsCronJobTest.php.

◆ $prg

ilObjStudyProgramme ilPrgRestartAssignmentsCronJobTest::$prg
protected

Definition at line 61 of file ilPrgRestartAssignmentsCronJobTest.php.

◆ $real_adapter

ilPrgRestart ilPrgRestartAssignmentsCronJobTest::$real_adapter
protected

Definition at line 59 of file ilPrgRestartAssignmentsCronJobTest.php.

◆ $settings_repo

ilStudyProgrammeSettingsDBRepository ilPrgRestartAssignmentsCronJobTest::$settings_repo
protected

Definition at line 56 of file ilPrgRestartAssignmentsCronJobTest.php.


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