ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
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 
5 declare(strict_types=1);
6 
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 
49  public function testFailCreateWithInvalidRestartPeriod() : void
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 
63  public function testSuccessfulWithQualificationPeriod() : void
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 }
Class Factory.
Class ChatMainBarProvider .
$lng
Builds data types.
Definition: Factory.php:19