ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
ilStudyProgrammeSubSettingsTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
27 
36 class ilStudyProgrammeSubSettingsTest extends \PHPUnit\Framework\TestCase
37 {
38  protected ilLanguage $lng;
39  protected Refinery $refinery;
42 
43  public function setUp(): void
44  {
45  $this->data_factory = new DataFactory();
46  $this->lng = $this->createMock(ilLanguage::class);
47  $this->refinery = new Refinery($this->data_factory, $this->lng);
48  $this->field_factory = new FieldFactory(
49  $this->createMock(\ILIAS\UI\Implementation\Component\Input\Field\Node\Factory::class),
50  $this->createMock(UploadLimitResolver::class),
51  new SignalGenerator(),
52  $this->data_factory,
53  $this->refinery,
54  $this->lng
55  );
56  }
57 
58  public function testPRGSettingsType(): void
59  {
60  $settings = new ilStudyProgrammeTypeSettings(765);
61  $this->assertEquals(765, $settings->getTypeId());
62  $this->assertEquals(777, $settings->withTypeId(777)->getTypeId());
63  }
64 
65  public function testPRGSettingsTypeToForm(): void
66  {
67  $settings = new ilStudyProgrammeTypeSettings(0);
68  $section = $settings->toFormInput(
69  $this->field_factory,
70  $this->lng,
71  $this->refinery,
72  [3 => 'AA', 7 => 'BB']
73  );
74  $this->assertInstanceOf(Field\Section::class, $section);
75  $inputs = $section->getInputs();
76  $this->assertInstanceOf(Field\Select::class, array_shift($inputs));
77  }
78 
79  public function testPRGSettingsAssessment(): void
80  {
82  $this->assertEquals(12, $settings->getPoints());
83  $this->assertEquals(13, $settings->withPoints(13)->getPoints());
84  $this->assertEquals(ilStudyProgrammeAssessmentSettings::STATUS_DRAFT, $settings->getStatus());
85  $this->assertEquals(
87  $settings->withStatus(ilStudyProgrammeAssessmentSettings::STATUS_ACTIVE)->getStatus()
88  );
89  }
90 
91  public function testPRGSettingsAssessmentToForm(): void
92  {
94  $section = $settings->toFormInput(
95  $this->field_factory,
96  $this->lng,
97  $this->refinery
98  );
99  $this->assertInstanceOf(Field\Section::class, $section);
100  $inputs = $section->getInputs();
101  $this->assertInstanceOf(Field\Numeric::class, array_shift($inputs));
102  $this->assertInstanceOf(Field\Select::class, array_shift($inputs));
103  }
104 
105  public function testPRGSettingsDeadline(): void
106  {
107  $settings = new ilStudyProgrammeDeadlineSettings(2, null);
108  $this->assertEquals(2, $settings->getDeadlinePeriod());
109  $this->assertEquals(13, $settings->withDeadlinePeriod(13)->getDeadlinePeriod());
110  $this->assertNull($settings->getDeadlineDate());
111  $dat = new \DateTimeImmutable();
112  $this->assertEquals($dat, $settings->withDeadlineDate($dat)->getDeadlineDate());
113  }
114 
115  public function testPRGSettingsDeadlineToForm(): void
116  {
117  $settings = new ilStudyProgrammeDeadlineSettings(null, null);
118  $section = $settings->toFormInput(
119  $this->field_factory,
120  $this->lng,
121  $this->refinery,
122  $this->data_factory
123  );
124  $this->assertInstanceOf(Field\Section::class, $section);
125  $group = $section->getInputs();
126  $this->assertInstanceOf(Field\SwitchableGroup::class, current($group));
127  $inputs = current($group)->getInputs();
128  $group1 = array_shift($inputs);
129  $this->assertEquals([], $group1->getInputs());
130  $group2 = array_shift($inputs);
131  $g_inputs = $group2->getInputs();
132  $this->assertInstanceOf(Field\Numeric::class, array_shift($g_inputs));
133  $group3 = array_shift($inputs);
134  $g_inputs = $group3->getInputs();
135  $this->assertInstanceOf(Field\DateTime::class, array_shift($g_inputs));
136  }
137 
138  public function testPRGSettingsValidity(): void
139  {
141  $this->assertEquals(365, $settings->withQualificationPeriod(365)->getQualificationPeriod());
142  $dat = new \DateTimeImmutable();
143  $this->assertEquals($dat, $settings->withQualificationDate($dat)->getQualificationDate());
144  $this->assertEquals(31, $settings->withRestartPeriod(31)->getRestartPeriod());
145  }
146 
147  public function testPRGSettingsValidityToForm(): void
148  {
150  $section = $settings->toFormInput(
151  $this->field_factory,
152  $this->lng,
153  $this->refinery,
154  $this->data_factory
155  );
156  $this->assertInstanceOf(Field\Section::class, $section);
157 
158  $groups = $section->getInputs();
159  $sg1 = array_shift($groups);
160  $this->assertInstanceOf(Field\SwitchableGroup::class, $sg1);
161  $sg2 = array_shift($groups);
162  $this->assertInstanceOf(Field\SwitchableGroup::class, $sg1);
163 
164  $inputs = $sg1->getInputs();
165  $group1 = array_shift($inputs);
166  $this->assertEquals([], $group1->getInputs());
167  $group2 = array_shift($inputs);
168  $g_inputs = $group2->getInputs();
169  $this->assertInstanceOf(Field\Numeric::class, array_shift($g_inputs));
170  $group3 = array_shift($inputs);
171  $g_inputs = $group3->getInputs();
172  $this->assertInstanceOf(Field\DateTime::class, array_shift($g_inputs));
173 
174  $inputs = $sg2->getInputs();
175  $group4 = array_shift($inputs);
176  $this->assertEquals([], $group4->getInputs());
177  $group5 = array_shift($inputs);
178  $g5_inputs = $group5->getInputs();
179  $this->assertInstanceOf(Field\Numeric::class, array_shift($g5_inputs));
180  $this->assertInstanceOf(Field\Checkbox::class, array_shift($g5_inputs));
181  }
182 
183  public function testPRGSettingsMail(): void
184  {
185  $settings = new ilStudyProgrammeAutoMailSettings(false, null, null);
186  $this->assertTrue($settings->withSendReAssignedMail(true)->getSendReAssignedMail());
187  $this->assertEquals(31, $settings->withReminderNotRestartedByUserDays(31)->getReminderNotRestartedByUserDays());
188  $this->assertEquals(60, $settings->withProcessingEndsNotSuccessfulDays(60)->getProcessingEndsNotSuccessfulDays());
189  }
190 
191  public function testPRGSettingsMailToForm(): void
192  {
193  $settings = new ilStudyProgrammeAutoMailSettings(false, null, null);
194  $section = $settings->toFormInput(
195  $this->field_factory,
196  $this->lng,
197  $this->refinery
198  );
199  $this->assertInstanceOf(Field\Section::class, $section);
200  $inputs = $section->getInputs();
201  $this->assertInstanceOf(Field\Checkbox::class, array_shift($inputs));
202  $opt = array_shift($inputs);
203  $this->assertInstanceOf(Field\OptionalGroup::class, $opt);
204  $g_inputs = $opt->getInputs();
205  $this->assertInstanceOf(Field\Numeric::class, array_shift($g_inputs));
206  $opt = array_shift($inputs);
207  $this->assertInstanceOf(Field\OptionalGroup::class, $opt);
208  $g_inputs = $opt->getInputs();
209  $this->assertInstanceOf(Field\Numeric::class, array_shift($g_inputs));
210  }
211 }
This implements commonalities between inputs.
Definition: Input.php:42
Interface Observer Contains several chained tasks and infos about them.
Tests for: ilStudyProgrammeTypeSettings ilStudyProgrammeAssessmentSettings ilStudyProgrammeDeadlineSe...
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Definition: Checkbox.php:21
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...