19declare(strict_types=1);
21use PHPUnit\Framework\TestCase;
36 self::VALID_QUALIFICATION_PERIOD_1,
37 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
38 self::VALID_RESTART_PERIOD_1,
42 $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_1, $obj->getQualificationPeriod());
44 self::VALID_QUALIFICATION_DATE,
45 $obj->getQualificationDate()->format(
'Y-m-d')
47 $this->assertEquals(self::VALID_RESTART_PERIOD_1, $obj->getRestartPeriod());
54 self::INVALID_QUALIFICATION_PERIOD,
55 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
56 self::VALID_RESTART_PERIOD_1,
60 }
catch (InvalidArgumentException
$e) {
61 $this->assertTrue(
true);
69 self::VALID_QUALIFICATION_PERIOD_1,
70 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
71 self::INVALID_RESTART_PERIOD,
75 }
catch (InvalidArgumentException
$e) {
76 $this->assertTrue(
true);
83 self::VALID_QUALIFICATION_PERIOD_1,
84 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
85 self::VALID_RESTART_PERIOD_1,
89 $new = $obj->withQualificationPeriod(self::VALID_QUALIFICATION_PERIOD_2);
91 $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_1, $obj->getQualificationPeriod());
92 $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_2, $new->getQualificationPeriod());
98 self::VALID_QUALIFICATION_PERIOD_1,
99 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
100 self::VALID_RESTART_PERIOD_1,
105 $obj->withQualificationPeriod(self::INVALID_QUALIFICATION_PERIOD);
107 }
catch (InvalidArgumentException
$e) {
108 $this->assertTrue(
true);
115 self::VALID_QUALIFICATION_PERIOD_1,
116 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
117 self::VALID_RESTART_PERIOD_1,
121 $new = $obj->withRestartPeriod(self::VALID_RESTART_PERIOD_2);
123 $this->assertEquals(self::VALID_RESTART_PERIOD_1, $obj->getRestartPeriod());
124 $this->assertEquals(self::VALID_RESTART_PERIOD_2, $new->getRestartPeriod());
130 self::VALID_QUALIFICATION_PERIOD_1,
131 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
132 self::VALID_RESTART_PERIOD_1,
137 $obj->withRestartPeriod(self::INVALID_RESTART_PERIOD);
139 }
catch (InvalidArgumentException
$e) {
140 $this->assertTrue(
true);
146 $lng = $this->createMock(ilLanguage::class);
160 self::VALID_QUALIFICATION_PERIOD_1,
161 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
162 self::VALID_RESTART_PERIOD_1,
166 $lng_consecutive_calls = [];
167 $lng->expects($this->atLeastOnce())
169 ->willReturnCallback(
170 function (
$txt) use (&$lng_consecutive_calls) {
171 $lng_consecutive_calls[] =
$txt;
176 $expected_consecutive_calls = [
177 'prg_no_validity_qualification',
179 'validity_qualification_period_desc',
180 'validity_qualification_period',
182 'validity_qualification_date_desc',
183 'validity_qualification_date',
185 'restart_period_label',
186 'restart_period_desc',
187 'restart_recheck_label',
188 'restart_recheck_desc',
190 'optgrp_label_validity',
191 'optgrp_label_restart',
192 'prg_validity_of_qualification'
195 $field = $obj->toFormInput(
202 $this->assertEquals($expected_consecutive_calls, $lng_consecutive_calls);
204 $date_value = $field->getInputs()[
'validity_qualification']->getValue()[1][
'vq_date'];
205 $date = (
new DateTimeImmutable($date_value))->format(
'Y-m-d');
207 $this->assertEquals(self::VALID_QUALIFICATION_DATE, $date);
209 $restart_field = $field->getInputs()[
'restart']->getValue()[1][
'vq_restart_period'];
211 $this->assertEquals(self::VALID_RESTART_PERIOD_1, $restart_field);
217 self::VALID_QUALIFICATION_PERIOD_1,
218 new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
219 self::VALID_RESTART_PERIOD_1,
223 $this->assertTrue($obj->getRestartRecheck());
224 $this->assertFalse($obj->withRestartRecheck(
false)->getRestartRecheck());
const VALID_QUALIFICATION_DATE
const VALID_RESTART_PERIOD_2
testFailCreateWithInvalidRestartPeriod()
testSuccessfulWithRestartPeriod()
const VALID_RESTART_PERIOD_1
testFailWithRestartPeriod()
testFailWithQualificationPeriod()
testSuccessfulWithQualificationPeriod()
const INVALID_QUALIFICATION_PERIOD
const VALID_QUALIFICATION_PERIOD_2
const INVALID_RESTART_PERIOD
testFailCreateWithInvalidQualificationPeriod()
const VALID_QUALIFICATION_PERIOD_1
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.