19 declare(strict_types=1);
32 $this->assignment_repo = $repo;
37 return \DateTimeImmutable::createFromFormat(
'Ymd',
'20221224');
40 protected function log(
string $msg): void
55 protected function setUp(): void
57 $this->events =
new ProgrammeEventsMock();
58 $this->settings_repo = $this->getMockBuilder(ilStudyProgrammeSettingsDBRepository::class)
59 ->disableOriginalConstructor()
60 ->onlyMethods([
'getProgrammeIdsWithRiskyToFailSettings'])
63 $this->adapter = $this->getMockBuilder(ilPrgRiskyToFail::class)
64 ->setConstructorArgs([$this->settings_repo, $this->events])
67 $this->real_adapter =
new ilPrgRiskyToFail($this->settings_repo, $this->events);
69 $this->assignment_repo = $this->getMockBuilder(ilPRGAssignmentDBRepository::class)
70 ->disableOriginalConstructor()
71 ->onlyMethods([
'getRiskyToFail',
'storeRiskyToFailSentFor'])
80 ->expects($this->once())
81 ->method(
'getRelevantProgrammeIds')
83 $this->assignment_repo
84 ->expects($this->never())
85 ->method(
'getRiskyToFail');
86 $this->assignment_repo
87 ->expects($this->never())
88 ->method(
'storeRiskyToFailSentFor');
90 ->expects($this->never())
91 ->method(
'actOnSingleAssignment');
99 ->withProgressTree($pgs1);
101 ->withProgressTree($pgs1);
104 ->expects($this->once())
105 ->method(
'getRelevantProgrammeIds')
109 $this->assignment_repo
110 ->expects($this->once())
111 ->method(
'getRiskyToFail')
112 ->willReturn([$ass1, $ass2]);
114 $this->assignment_repo
115 ->expects($this->exactly(2))
116 ->method(
'storeRiskyToFailSentFor');
119 ->expects($this->exactly(2))
120 ->method(
'actOnSingleAssignment');
132 ->expects($this->once())
133 ->method(
'getProgrammeIdsWithRiskyToFailSettings')
139 $this->assignment_repo
140 ->expects($this->once())
141 ->method(
'getRiskyToFail')
142 ->willReturn([$ass1, $ass2]);
147 $this->assertEquals(2, count($job->logs));
149 [
'userRiskyToFail', [
"ass_id" => 42,
'root_prg_id' => 11]],
150 [
'userRiskyToFail', [
"ass_id" => 43,
'root_prg_id' => 11]]
152 $this->assertEquals($expected_events, $this->events->raised);
ilPRGAssignmentDBRepository $assignment_repo
ilPrgUserRiskyToFailCronJobMock $job
testRiskyToFailForRelevantProgrammes()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilPrgRiskyToFail $real_adapter
A Progress is the status of a user on a single node of an assignment; it is unique by assignment_id:u...
testRiskyToFailForNoRelevantProgrammes()
ilStudyProgrammeSettingsDBRepository $settings_repo
ilPrgCronJobAdapter $adapter
ilPrgRiskyToFail $adapter
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
__construct(ilPRGAssignmentDBRepository $repo, ilPrgCronJobAdapter $adapter)
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
ProgrammeEventsMock $events