ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilTestRandomQuestionSetQuestionCollectionTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
26 {
28 
29  protected function setUp(): void
30  {
31  parent::setUp();
32 
33  $this->testObj = new ilTestRandomQuestionSetQuestionCollection();
34  }
35 
37  {
38  $this->assertInstanceOf(ilTestRandomQuestionSetQuestionCollection::class, $this->testObj);
39  }
40 
41  public function testQuestions(): void
42  {
43  $expected = [
46  ];
47 
48  $this->testObj->setQuestions($expected);
49  $this->assertEquals($expected, $this->testObj->getQuestions());
50  }
51 
52  public function testAddQuestions(): void
53  {
54  $this->testObj->addQuestion(new ilTestRandomQuestionSetQuestion());
55  $this->testObj->addQuestion(new ilTestRandomQuestionSetQuestion());
56  $this->testObj->addQuestion(new ilTestRandomQuestionSetQuestion());
57  $this->assertCount(3, $this->testObj->getQuestions());
58  }
59 
60  public function testCurrent(): void
61  {
62  $questions = [];
63  $ids = [125, 112, 10];
64  foreach ($ids as $id) {
65  $question = new ilTestRandomQuestionSetQuestion();
66  $question->setQuestionId($id);
67  $questions[] = $question;
68  }
69 
70  $this->testObj->setQuestions($questions);
71 
72  $this->assertEquals($questions[0], $this->testObj->current());
73  }
74 
75  public function testKey(): void
76  {
77  $questions = [];
78  $ids = [125, 112, 10];
79  foreach ($ids as $id) {
80  $question = new ilTestRandomQuestionSetQuestion();
81  $question->setQuestionId($id);
82  $questions[] = $question;
83  }
84 
85  $this->testObj->setQuestions($questions);
86 
87  $this->assertEquals(0, $this->testObj->key());
88 
89  $this->testObj->next();
90  $this->testObj->next();
91  $this->assertEquals(2, $this->testObj->key());
92  }
93 
94  public function testValid(): void
95  {
96  $questions = [];
97  $ids = [125, 112, 10];
98  foreach ($ids as $id) {
99  $question = new ilTestRandomQuestionSetQuestion();
100  $question->setQuestionId($id);
101  $questions[] = $question;
102  }
103 
104  $this->testObj->setQuestions($questions);
105 
106  $this->assertTrue($this->testObj->valid());
107 
108  $this->testObj->setQuestions([]);
109  $this->assertFalse($this->testObj->valid());
110  }
111 
112  public function testRewind(): void
113  {
114  $questions = [];
115  $ids = [125, 112, 10];
116  foreach ($ids as $id) {
117  $question = new ilTestRandomQuestionSetQuestion();
118  $question->setQuestionId($id);
119  $questions[] = $question;
120  }
121 
122  $this->testObj->setQuestions($questions);
123 
124  $this->assertEquals($questions[0], $this->testObj->current());
125 
126  $this->testObj->next();
127  $this->testObj->next();
128  $this->assertEquals($questions[2], $this->testObj->current());
129 
130  $this->testObj->rewind();
131  $this->assertEquals($questions[0], $this->testObj->current());
132  }
133 
134  public function testIsGreaterThan(): void
135  {
136  $questions = [];
137  $ids = [125, 112, 10];
138  foreach ($ids as $id) {
139  $question = new ilTestRandomQuestionSetQuestion();
140  $question->setQuestionId($id);
141  $questions[] = $question;
142  }
143 
144  $this->testObj->setQuestions($questions);
145 
146  $this->assertTrue($this->testObj->isGreaterThan(2));
147  $this->assertTrue($this->testObj->isGreaterThan(1));
148  $this->assertFalse($this->testObj->isGreaterThan(6));
149  }
150 
151  public function testIsSmallerThan(): void
152  {
153  $questions = [];
154  $ids = [125, 112, 10];
155  foreach ($ids as $id) {
156  $question = new ilTestRandomQuestionSetQuestion();
157  $question->setQuestionId($id);
158  $questions[] = $question;
159  }
160 
161  $this->testObj->setQuestions($questions);
162 
163  $this->assertFalse($this->testObj->isSmallerThan(3));
164  $this->assertFalse($this->testObj->isSmallerThan(1));
165  $this->assertTrue($this->testObj->isSmallerThan(6));
166  }
167 
168  public function testGetMissingCount(): void
169  {
170  $questions = [];
171  $ids = [125, 112, 10];
172  foreach ($ids as $id) {
173  $question = new ilTestRandomQuestionSetQuestion();
174  $question->setQuestionId($id);
175  $questions[] = $question;
176  }
177 
178  $this->testObj->setQuestions($questions);
179 
180  $this->assertEquals(0, $this->testObj->getMissingCount(3));
181  $this->assertEquals(0, $this->testObj->getMissingCount(1));
182  $this->assertEquals(3, $this->testObj->getMissingCount(6));
183  }
184 
185  public function testMergeQuestionCollection(): void
186  {
187  $questions = [];
188  $ids = [125, 112, 10];
189  foreach ($ids as $index => $id) {
190  $question = new ilTestRandomQuestionSetQuestion();
191  $question->setQuestionId($id);
192  $questions[$index] = $question;
193  $this->testObj->addQuestion($question);
194  }
195 
196  $collection = new ilTestRandomQuestionSetQuestionCollection();
197 
198  $ids = [1, 5, 8];
199  foreach ($ids as $index => $id) {
200  $question = new ilTestRandomQuestionSetQuestion();
201  $question->setQuestionId($id);
202  $questions[$index + 3] = $question;
203  $collection->addQuestion($question);
204  }
205 
206  $this->testObj->mergeQuestionCollection($collection);
207 
208  $this->assertEquals($questions, $this->testObj->getQuestions());
209  }
210 
211  public function testGetUniqueQuestionCollection(): void
212  {
213  $ids = [125, 112, 10, 112];
214  foreach ($ids as $id) {
215  $question = new ilTestRandomQuestionSetQuestion();
216  $question->setQuestionId($id);
217  $this->testObj->addQuestion($question);
218  }
219 
220  $this->assertCount(3, $this->testObj->getUniqueQuestionCollection()->getQuestions());
221  }
222 
223  public function testGetQuestionAmount(): void
224  {
225  $ids = [125, 112, 10];
226  foreach ($ids as $id) {
227  $question = new ilTestRandomQuestionSetQuestion();
228  $question->setQuestionId($id);
229  $this->testObj->addQuestion($question);
230  }
231 
232  $this->assertEquals(3, $this->testObj->getQuestionAmount());
233  }
234 
235  public function testGetInvolvedQuestionIds(): void
236  {
237  $ids = [125, 112, 10];
238  foreach ($ids as $id) {
239  $question = new ilTestRandomQuestionSetQuestion();
240  $question->setQuestionId($id);
241  $this->testObj->addQuestion($question);
242  }
243 
244  $this->assertEquals($ids, $this->testObj->getInvolvedQuestionIds());
245  }
246 }
Class ilTestRandomQuestionSetQuestionCollectionTest.
Class ilTestBaseClass.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23