ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilStudyProgrammeValidityOfAchievedQualificationSettingsTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
24 {
25  private const VALID_QUALIFICATION_PERIOD_1 = 1;
26  private const VALID_QUALIFICATION_PERIOD_2 = 2;
27  private const INVALID_QUALIFICATION_PERIOD = -1;
28  private const VALID_QUALIFICATION_DATE = '2019-02-14';
29  private const VALID_RESTART_PERIOD_1 = 1;
30  private const VALID_RESTART_PERIOD_2 = 2;
31  private const INVALID_RESTART_PERIOD = -1;
32 
33  public function testSuccessfulCreate(): void
34  {
36  self::VALID_QUALIFICATION_PERIOD_1,
37  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
38  self::VALID_RESTART_PERIOD_1,
39  true
40  );
41 
42  $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_1, $obj->getQualificationPeriod());
43  $this->assertEquals(
44  self::VALID_QUALIFICATION_DATE,
45  $obj->getQualificationDate()->format('Y-m-d')
46  );
47  $this->assertEquals(self::VALID_RESTART_PERIOD_1, $obj->getRestartPeriod());
48  }
49 
51  {
52  try {
54  self::INVALID_QUALIFICATION_PERIOD,
55  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
56  self::VALID_RESTART_PERIOD_1,
57  true
58  );
59  $this->fail();
60  } catch (InvalidArgumentException $e) {
61  $this->assertTrue(true);
62  }
63  }
64 
66  {
67  try {
69  self::VALID_QUALIFICATION_PERIOD_1,
70  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
71  self::INVALID_RESTART_PERIOD,
72  true
73  );
74  $this->fail();
75  } catch (InvalidArgumentException $e) {
76  $this->assertTrue(true);
77  }
78  }
79 
80  public function testSuccessfulWithQualificationPeriod(): void
81  {
83  self::VALID_QUALIFICATION_PERIOD_1,
84  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
85  self::VALID_RESTART_PERIOD_1,
86  true
87  );
88 
89  $new = $obj->withQualificationPeriod(self::VALID_QUALIFICATION_PERIOD_2);
90 
91  $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_1, $obj->getQualificationPeriod());
92  $this->assertEquals(self::VALID_QUALIFICATION_PERIOD_2, $new->getQualificationPeriod());
93  }
94 
95  public function testFailWithQualificationPeriod(): void
96  {
98  self::VALID_QUALIFICATION_PERIOD_1,
99  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
100  self::VALID_RESTART_PERIOD_1,
101  true
102  );
103 
104  try {
105  $obj->withQualificationPeriod(self::INVALID_QUALIFICATION_PERIOD);
106  $this->fail();
107  } catch (InvalidArgumentException $e) {
108  $this->assertTrue(true);
109  }
110  }
111 
112  public function testSuccessfulWithRestartPeriod(): void
113  {
115  self::VALID_QUALIFICATION_PERIOD_1,
116  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
117  self::VALID_RESTART_PERIOD_1,
118  true
119  );
120 
121  $new = $obj->withRestartPeriod(self::VALID_RESTART_PERIOD_2);
122 
123  $this->assertEquals(self::VALID_RESTART_PERIOD_1, $obj->getRestartPeriod());
124  $this->assertEquals(self::VALID_RESTART_PERIOD_2, $new->getRestartPeriod());
125  }
126 
127  public function testFailWithRestartPeriod(): void
128  {
130  self::VALID_QUALIFICATION_PERIOD_1,
131  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
132  self::VALID_RESTART_PERIOD_1,
133  true
134  );
135 
136  try {
137  $obj->withRestartPeriod(self::INVALID_RESTART_PERIOD);
138  $this->fail();
139  } catch (InvalidArgumentException $e) {
140  $this->assertTrue(true);
141  }
142  }
143 
144  public function testToFormInput(): void
145  {
146  $lng = $this->createMock(ilLanguage::class);
147  $df = new ILIAS\Data\Factory();
149 
151  $this->createMock(\ILIAS\UI\Implementation\Component\Input\UploadLimitResolver::class),
152  new ILIAS\UI\Implementation\Component\SignalGenerator(),
153  $df,
154  $refinery,
155  $lng
156  );
157 
159  self::VALID_QUALIFICATION_PERIOD_1,
160  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
161  self::VALID_RESTART_PERIOD_1,
162  true
163  );
164 
165  $lng->expects($this->atLeastOnce())
166  ->method('txt')
167  ->withConsecutive(
168  ['prg_no_validity_qualification'],
169  ['vq_period_label'],
170  ['validity_qualification_period_desc'],
171  ['validity_qualification_period'],
172  ['vq_date_label'],
173  ['validity_qualification_date_desc'],
174  ['validity_qualification_date'],
175  ['prg_no_restart'],
176  ['restart_period_label'],
177  ['restart_period_desc'],
178  ['restart_recheck_label'],
179  ['restart_recheck_desc'],
180  ['restart_period'],
181  ['optgrp_label_validity'],
182  ['optgrp_label_restart'],
183  ['prg_validity_of_qualification']
184  )
185  ->will($this->onConsecutiveCalls(
186  'prg_no_validity_qualification',
187  'vq_period_label',
188  'validity_qualification_period_desc',
189  'validity_qualification_period',
190  'vq_date_label',
191  'validity_qualification_date_desc',
192  'validity_qualification_date',
193  'prg_no_restart',
194  'restart_period_label',
195  'restart_period_desc',
196  'restart_recheck_label',
197  'restart_recheck_desc',
198  'restart_period',
199  'optgrp_label_validity',
200  'optgrp_label_restart',
201  'prg_validity_of_qualification'
202  ))
203  ;
204 
205  $field = $obj->toFormInput(
206  $f,
207  $lng,
208  $refinery,
209  $df
210  );
211 
212  $date_value = $field->getInputs()['validity_qualification']->getValue()[1]['vq_date'];
213  $date = (new DateTimeImmutable($date_value))->format('Y-m-d');
214 
215  $this->assertEquals(self::VALID_QUALIFICATION_DATE, $date);
216 
217  $restart_field = $field->getInputs()['restart']->getValue()[1]['vq_restart_period'];
218 
219  $this->assertEquals(self::VALID_RESTART_PERIOD_1, $restart_field);
220  }
221 
222  public function testWithRestartRecheck(): void
223  {
225  self::VALID_QUALIFICATION_PERIOD_1,
226  new DateTimeImmutable(self::VALID_QUALIFICATION_DATE),
227  self::VALID_RESTART_PERIOD_1,
228  true
229  );
230 
231  $this->assertTrue($obj->getRestartRecheck());
232  $this->assertFalse($obj->withRestartRecheck(false)->getRestartRecheck());
233  }
234 }
Class ChatMainBarProvider .
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$lng
Refinery Factory $refinery