3 declare(strict_types=1);
32 $this->assignment_repo = $repo;
37 return \DateTimeImmutable::createFromFormat(
'Ymd',
'20221224');
40 protected function log(
string $msg): void
53 protected function setUp(): void
55 $this->events =
new ProgrammeEventsMock();
56 $this->settings_repo = $this->getMockBuilder(ilStudyProgrammeSettingsDBRepository::class)
57 ->disableOriginalConstructor()
58 ->onlyMethods([
'getProgrammeIdsWithRiskyToFailSettings'])
61 $this->adapter = $this->getMockBuilder(ilPrgRiskyToFail::class)
62 ->setConstructorArgs([$this->settings_repo, $this->events])
65 $this->real_adapter =
new ilPrgRiskyToFail($this->settings_repo, $this->events);
67 $this->assignment_repo = $this->getMockBuilder(ilPRGAssignmentDBRepository::class)
68 ->disableOriginalConstructor()
69 ->onlyMethods([
'getRiskyToFail',
'storeRiskyToFailSentFor'])
78 ->expects($this->once())
79 ->method(
'getRelevantProgrammeIds')
81 $this->assignment_repo
82 ->expects($this->never())
83 ->method(
'getRiskyToFail');
84 $this->assignment_repo
85 ->expects($this->never())
86 ->method(
'storeRiskyToFailSentFor');
88 ->expects($this->never())
89 ->method(
'actOnSingleAssignment');
97 ->withProgressTree($pgs1);
99 ->withProgressTree($pgs1);
102 ->expects($this->once())
103 ->method(
'getRelevantProgrammeIds')
107 $this->assignment_repo
108 ->expects($this->once())
109 ->method(
'getRiskyToFail')
110 ->willReturn([$ass1, $ass2]);
112 $this->assignment_repo
113 ->expects($this->exactly(2))
114 ->method(
'storeRiskyToFailSentFor');
117 ->expects($this->exactly(2))
118 ->method(
'actOnSingleAssignment');
130 ->expects($this->once())
131 ->method(
'getProgrammeIdsWithRiskyToFailSettings')
137 $this->assignment_repo
138 ->expects($this->once())
139 ->method(
'getRiskyToFail')
140 ->willReturn([$ass1, $ass2]);
145 $this->assertEquals(2, count($job->logs));
147 [
'userRiskyToFail', [
"ass_id" => 42,
'root_prg_id' => 11]],
148 [
'userRiskyToFail', [
"ass_id" => 43,
'root_prg_id' => 11]]
150 $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...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
A Progress is the status of a user on a single node of an assignment; it is unique by assignment_id:u...
testRiskyToFailForNoRelevantProgrammes()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilStudyProgrammeSettingsDBRepository $settings_repo
ilPrgCronJobAdapter $adapter
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
__construct(ilPRGAssignmentDBRepository $repo, ilPrgCronJobAdapter $adapter)
Assignments are relations of users to a PRG; They hold progress-information for (sub-)nodes of the PR...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ProgrammeEventsMock $events