ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilStudyProgrammeAssessmentSettingsTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
24use PHPUnit\Framework\TestCase;
25
27{
28 private const VALID_POINTS_1 = 22;
29 private const VALID_POINTS_2 = 44;
30 private const INVALID_POINTS = -11;
31 private const VALID_STATUS_1 = 20;
32 private const VALID_STATUS_2 = 30;
33 private const INVALID_STATUS = -1;
34
35 public function testSuccessfulCreate(): void
36 {
37 $obj = new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::VALID_STATUS_1);
38
39 $this->assertEquals(self::VALID_POINTS_1, $obj->getPoints());
40 $this->assertEquals(self::VALID_STATUS_1, $obj->getStatus());
41 }
42
43 public function testFailCreateWithInvalidPoints(): void
44 {
45 try {
46 new ilStudyProgrammeAssessmentSettings(self::INVALID_POINTS, self::VALID_STATUS_1);
47 $this->fail();
48 } catch (InvalidArgumentException $e) {
49 $this->assertTrue(true);
50 }
51 }
52
53 public function testFailCreateWithInvalidStatus(): void
54 {
55 try {
56 new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::INVALID_STATUS);
57 $this->fail();
58 } catch (InvalidArgumentException $e) {
59 $this->assertTrue(true);
60 }
61 }
62
64 {
65 try {
66 new ilStudyProgrammeAssessmentSettings(self::INVALID_POINTS, self::INVALID_STATUS);
67 $this->fail();
68 } catch (InvalidArgumentException $e) {
69 $this->assertTrue(true);
70 }
71 }
72
73 public function testSuccessfulWithPoints(): void
74 {
75 $obj = new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::VALID_STATUS_1);
76
77 $new = $obj->withPoints(self::VALID_POINTS_2);
78
79 $this->assertEquals(self::VALID_POINTS_1, $obj->getPoints());
80 $this->assertEquals(self::VALID_POINTS_2, $new->getPoints());
81 }
82
83 public function testFailWithPoints(): void
84 {
85 $obj = new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::VALID_STATUS_1);
86
87 try {
88 $obj->withPoints(self::INVALID_POINTS);
89 $this->fail();
90 } catch (InvalidArgumentException $e) {
91 $this->assertTrue(true);
92 }
93 }
94
95 public function testSuccessfulWithStatus(): void
96 {
97 $obj = new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::VALID_STATUS_1);
98
99 $new = $obj->withStatus(self::VALID_STATUS_2);
100
101 $this->assertEquals(self::VALID_STATUS_1, $obj->getStatus());
102 $this->assertEquals(self::VALID_STATUS_2, $new->getStatus());
103 }
104
105 public function testFailWithStatus(): void
106 {
107 $obj = new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::VALID_STATUS_1);
108
109 try {
110 $obj->withStatus(self::INVALID_STATUS);
111 $this->fail();
112 } catch (InvalidArgumentException $e) {
113 $this->assertTrue(true);
114 }
115 }
116
117 public function testToFormInput(): void
118 {
119 $lng = $this->createMock(ilLanguage::class);
120 $df = new ILIAS\Data\Factory();
122
124 $this->createMock(\ILIAS\UI\Implementation\Component\Input\Field\Node\Factory::class),
125 $this->createMock(\ILIAS\UI\Implementation\Component\Input\UploadLimitResolver::class),
126 new ILIAS\UI\Implementation\Component\SignalGenerator(),
127 $df,
128 $refinery,
129 $lng
130 );
131
132 $obj = new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::VALID_STATUS_1);
133
134 $lng_consecutive_calls = [];
135 $lng->expects($this->atLeastOnce())
136 ->method('txt')
137 ->willReturnCallback(
138 function ($txt) use (&$lng_consecutive_calls) {
139 $lng_consecutive_calls[] = $txt;
140 return $txt;
141 }
142 );
143
144 $expected_consecutive_calls = [
145 'prg_points',
146 'prg_points_byline',
147 'prg_status',
148 'prg_status_draft',
149 'prg_status_active',
150 'prg_status_outdated',
151 'prg_status_byline',
152 'prg_assessment'
153 ];
154
155 $field = $obj->toFormInput(
156 $f,
157 $lng,
159 );
160
161 $this->assertEquals($expected_consecutive_calls, $lng_consecutive_calls);
162
163 $this->assertInstanceOf(
164 Section::class,
165 $field
166 );
167
168 $inputs = $field->getInputs();
169
170 $this->assertInstanceOf(
171 Numeric::class,
172 $inputs['points']
173 );
174
175 $this->assertInstanceOf(
176 Select::class,
177 $inputs['status']
178 );
179 }
180}
Factory for Date Formats.
Definition: Factory.php:27
Builds data types.
Definition: Factory.php:36
This implements the numeric input.
Definition: Numeric.php:34
This implements the section input.
Definition: Section.php:34
$txt
Definition: error.php:31
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.
global $lng
Definition: privfeed.php:31