ILIAS  release_7 Revision v7.30-3-g800a261c036
ilStudyProgrammeValidityOfAchievedQualificationSettingsTest.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 2019 Daniel Weise <daniel.weise@concepts-and-training.de> Extended GPL, see docs/LICENSE */
4
5declare(strict_types=1);
6
7use PHPUnit\Framework\TestCase;
8
10{
14 const VALID_QUALIFICATION_DATE = '2019-02-14';
18
19 public function testSuccessfulCreate() : void
20 {
22 self::VALID_QUALIFICATION_PERIOD_1,
23 new DateTime(self::VALID_QUALIFICATION_DATE),
24 self::VALID_RESTART_PERIOD_1
25 );
26
27 $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_1, $obj->getQualificationPeriod());
28 $this->assertEquals(
29 self::VALID_QUALIFICATION_DATE,
30 $obj->getQualificationDate()->format('Y-m-d')
31 );
32 $this->assertEquals(self::VALID_RESTART_PERIOD_1, $obj->getRestartPeriod());
33 }
34
36 {
37 try {
39 self::INVALID_QUALIFICATION_PERIOD,
40 new DateTime(self::VALID_QUALIFICATION_DATE),
41 self::VALID_RESTART_PERIOD_1
42 );
43 $this->assertTrue(false);
44 } catch (InvalidArgumentException $e) {
45 $this->assertTrue(true);
46 }
47 }
48
50 {
51 try {
53 self::VALID_QUALIFICATION_PERIOD_1,
54 new DateTime(self::VALID_QUALIFICATION_DATE),
55 self::INVALID_RESTART_PERIOD
56 );
57 $this->assertTrue(false);
58 } catch (InvalidArgumentException $e) {
59 $this->assertTrue(true);
60 }
61 }
62
64 {
66 self::VALID_QUALIFICATION_PERIOD_1,
67 new DateTime(self::VALID_QUALIFICATION_DATE),
68 self::VALID_RESTART_PERIOD_1
69 );
70
71 $new = $obj->withQualificationPeriod(self::VALID_QUALIFICATION_PERIOD_2);
72
73 $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_1, $obj->getQualificationPeriod());
74 $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_2, $new->getQualificationPeriod());
75 }
76
77 public function testFailWithQualificationPeriod() : void
78 {
80 self::VALID_QUALIFICATION_PERIOD_1,
81 new DateTime(self::VALID_QUALIFICATION_DATE),
82 self::VALID_RESTART_PERIOD_1
83 );
84
85 try {
86 $obj->withQualificationPeriod(self::INVALID_QUALIFICATION_PERIOD);
87 $this->assertTrue(false);
88 } catch (InvalidArgumentException $e) {
89 $this->assertTrue(true);
90 }
91 }
92
93 public function testSuccessfulWithRestartPeriod() : void
94 {
96 self::VALID_QUALIFICATION_PERIOD_1,
97 new DateTime(self::VALID_QUALIFICATION_DATE),
98 self::VALID_RESTART_PERIOD_1
99 );
100
101 $new = $obj->withRestartPeriod(self::VALID_RESTART_PERIOD_2);
102
103 $this->assertEquals(self::VALID_RESTART_PERIOD_1, $obj->getRestartPeriod());
104 $this->assertEquals(self::VALID_RESTART_PERIOD_2, $new->getRestartPeriod());
105 }
106
107 public function testFailWithRestartPeriod() : void
108 {
110 self::VALID_QUALIFICATION_PERIOD_1,
111 new DateTime(self::VALID_QUALIFICATION_DATE),
112 self::VALID_RESTART_PERIOD_1
113 );
114
115 try {
116 $obj->withRestartPeriod(self::INVALID_RESTART_PERIOD);
117 $this->assertTrue(false);
118 } catch (InvalidArgumentException $e) {
119 $this->assertTrue(true);
120 }
121 }
122
123 public function testToFormInput() : void
124 {
125 $lng = $this->createMock(ilLanguage::class);
126 $df = new ILIAS\Data\Factory();
127 $refinery = new ILIAS\Refinery\Factory($df, $lng);
128
130 new ILIAS\UI\Implementation\Component\SignalGenerator(),
131 $df,
132 $refinery,
133 $lng
134 );
135
137 self::VALID_QUALIFICATION_PERIOD_1,
138 new DateTime(self::VALID_QUALIFICATION_DATE),
139 self::VALID_RESTART_PERIOD_1
140 );
141
142 $lng->expects($this->atLeastOnce())
143 ->method('txt')
144 ->withConsecutive(
145 ['prg_no_validity_qualification'],
146 ['validity_qualification_period_desc'],
147 ['validity_qualification_period'],
148 ['validity_qualification_date_desc'],
149 ['validity_qualification_date'],
150 ['prg_no_restart'],
151 ['restart_period_desc'],
152 ['restart_period'],
153 ['prg_validity_of_qualification']
154 )
155 ->will($this->onConsecutiveCalls(
156 'prg_no_validity_qualification',
157 'validity_qualification_period_desc',
158 'validity_qualification_period',
159 'validity_qualification_date_desc',
160 'validity_qualification_date',
161 'prg_no_restart',
162 'restart_period_desc',
163 'restart_period',
164 'prg_validity_of_qualification'
165 ))
166 ;
167
168 $field = $obj->toFormInput(
169 $f,
170 $lng,
171 $refinery,
172 $df
173 );
174
175 $date_value = $field->getInputs()['validity_qualification']->getValue()[1]['vq_date'];
176 $date = (new DateTime($date_value))->format('Y-m-d');
177
178 $this->assertEquals(self::VALID_QUALIFICATION_DATE, $date);
179
180 $restart_field = $field->getInputs()['restart']->getValue()[1]['vq_restart_period'];
181
182 $this->assertEquals(self::VALID_RESTART_PERIOD_1, $restart_field);
183 }
184}
An exception for terminatinating execution or to throw for unit testing.
Builds data types.
Definition: Factory.php:20
Class ChatMainBarProvider \MainMenu\Provider.
Class Factory.
$lng