ILIAS  release_8 Revision v8.24
ilStudyProgrammeAssessmentSettingsTest.php
Go to the documentation of this file.
1<?php
2
3declare(strict_types=1);
4
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\UploadLimitResolver::class),
125 new ILIAS\UI\Implementation\Component\SignalGenerator(),
126 $df,
127 $refinery,
128 $lng
129 );
130
131 $obj = new ilStudyProgrammeAssessmentSettings(self::VALID_POINTS_1, self::VALID_STATUS_1);
132
133 $lng->expects($this->atLeastOnce())
134 ->method('txt')
135 ->withConsecutive(
136 ['prg_points'],
137 ['prg_points_byline'],
138 ['prg_status'],
139 ['prg_status_draft'],
140 ['prg_status_active'],
141 ['prg_status_outdated'],
142 ['prg_status_byline'],
143 ['prg_assessment']
144 )
145 ->will($this->onConsecutiveCalls(
146 'prg_points',
147 'prg_points_byline',
148 'prg_status',
149 'prg_status_draft',
150 'prg_status_active',
151 'prg_status_outdated',
152 'prg_status_byline',
153 'prg_assessment'
154 ))
155 ;
156
157 $field = $obj->toFormInput(
158 $f,
159 $lng,
161 );
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:21
This implements the numeric input.
Definition: Numeric.php:34
This implements the section input.
Definition: Section.php:29
Refinery Factory $refinery
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class ChatMainBarProvider \MainMenu\Provider.
Class Factory.
$lng