32 protected function setUp(): void
34 chdir(dirname(__FILE__));
39 require_once
'./Services/Utilities/classes/class.ilUtil.php';
40 $util_mock = $this->createMock(
'ilUtil', array(
'stripSlashes'), array(),
'',
false);
41 $util_mock->expects($this->any())->method(
'stripSlashes')->will($this->returnArgument(0));
48 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
53 $this->assertInstanceOf(
'assClozeGap', $instance);
59 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
64 $instance->setType($expected);
65 $actual = $instance->getType();
68 $this->assertEquals($expected, $actual);
74 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
80 $actual = $instance->getType();
83 $this->assertEquals($expected, $actual);
89 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
94 $instance->setShuffle($expected);
95 $actual = $instance->getShuffle();
98 $this->assertEquals($expected, $actual);
104 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
109 $the_unexpected = array(
'Killing',
'Kunkel',
'Luetzenkirchen',
110 'Meyer',
'Jansen',
'Heyser',
'Becker');
111 $instance->items = $the_unexpected;
112 $instance->setShuffle(
true);
113 $theExpected = [
'hua',
'haaa',
'some random values'];
115 $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
116 $transformationMock->expects(self::once())->method(
'transform')->with($the_unexpected)->willReturn($theExpected);
117 $actual = $instance->getItems($transformationMock);
120 $this->assertEquals($theExpected, $actual);
126 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
128 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
132 $instance->addItem($expected);
133 $actual = $instance->getItem(0);
136 $this->assertEquals($expected, $actual);
142 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
144 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
149 $instance->addItem($answer);
150 $instance->addItem($expected);
151 $actual = $instance->getItem(0);
154 $this->assertEquals($expected, $actual);
160 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
162 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
166 $instance->addItem($answer1);
167 $instance->addItem($answer2);
172 $actual = $instance->getItem(2);
175 $this->assertEquals($expected, $actual);
181 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
184 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
191 $instance->addItem($answer);
192 $instance->addItem($answer2);
193 $instance->addItem($answer3);
194 $instance->addItem($expected);
195 $actual = $instance->getItem(0);
198 $this->assertEquals($expected, $actual);
204 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
206 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
211 $instance->setShuffle(
false);
212 $expected = array($item1, $item2, $item3, $item4);
214 $instance->addItem($item1);
215 $instance->addItem($item2);
216 $instance->addItem($item3);
217 $instance->addItem($item4);
218 $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
219 $transformationMock->expects(self::never())->method(
'transform');
220 $actual = $instance->getItems($transformationMock);
223 $this->assertEquals($expected, $actual);
229 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
231 $instance->setShuffle(
true);
232 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
244 $shuffledArray = [
'some shuffled array',
'these values dont matter'];
247 foreach ($expected as $item) {
248 $instance->addItem($item);
251 $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
252 $transformationMock->expects(self::once())->method(
'transform')->with($expected)->willReturn($shuffledArray);
253 $actual = $instance->getItems($transformationMock);
257 $this->assertEquals($shuffledArray, $actual);
263 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
265 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
270 $expected = array($item1, $item2, $item3, $item4);
273 $instance->addItem($item1);
274 $instance->addItem($item2);
275 $instance->addItem($item3);
276 $instance->addItem($item4);
277 $actual = $instance->getItemsRaw();
280 $this->assertEquals($expected, $actual);
286 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
288 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
296 $instance->addItem($item1);
297 $instance->addItem($item2);
298 $instance->addItem($item3);
299 $instance->addItem($item4);
300 $actual = $instance->getItemCount();
303 $this->assertEquals($expected, $actual);
306 public function test_setItemPoints_shouldSetItemPoints():
void 309 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
311 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
313 $instance->addItem($item1);
317 $instance->setItemPoints(0, $expected);
319 $item_retrieved = $instance->getItem(0);
320 $actual = $item_retrieved->getPoints();
323 $this->assertEquals($expected, $actual);
329 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
331 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
335 $instance->addItem($item1);
336 $instance->addItem($item2);
338 $expected = array(
'1' => $item2);
341 $instance->deleteItem(0);
343 $actual = $instance->getItemsRaw();
346 $this->assertEquals($expected, $actual);
352 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
354 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
360 $instance->addItem($item1);
361 $instance->addItem($item2);
362 $instance->addItem($item3);
363 $instance->addItem($item4);
368 $instance->clearItems();
369 $actual = $instance->getItemCount();
372 $this->assertEquals($expected, $actual);
378 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
380 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
383 $instance->addItem($item1);
388 $instance->setItemLowerBound(0, $expected);
389 $item_retrieved = $instance->getItem(0);
390 $actual = $item_retrieved->getLowerBound();
393 $this->assertEquals($expected, $actual);
399 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
401 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
404 $instance->addItem($item1);
409 $instance->setItemLowerBound(0, $expected);
410 $item_retrieved = $instance->getItem(0);
411 $actual = $item_retrieved->getLowerBound();
414 $this->assertNotEquals($expected, $actual);
415 $this->assertEquals($item_retrieved->getAnswerText(), $actual);
421 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
423 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
426 $instance->addItem($item1);
431 $instance->setItemUpperBound(0, $expected);
432 $item_retrieved = $instance->getItem(0);
433 $actual = $item_retrieved->getUpperBound();
436 $this->assertEquals($expected, $actual);
442 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
444 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
447 $instance->addItem($item1);
452 $instance->setItemUpperBound(0, $expected);
453 $item_retrieved = $instance->getItem(0);
454 $actual = $item_retrieved->getUpperBound();
457 $this->assertNotEquals($expected, $actual);
458 $this->assertEquals($item_retrieved->getAnswerText(), $actual);
464 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
466 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
472 $instance->addItem($item1);
473 $instance->addItem($item2);
474 $instance->addItem($item3);
475 $instance->addItem($item4);
477 $expected = strlen($item4->getAnswertext());
480 $actual = $instance->getMaxWidth();
483 $this->assertEquals($expected, $actual);
489 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
491 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
497 $instance->addItem($item1);
498 $instance->addItem($item2);
499 $instance->addItem($item3);
500 $instance->addItem($item4);
502 $expected = array( 0 => 3 );
505 $actual = $instance->getBestSolutionIndexes();
508 $this->assertEquals($expected, $actual);
514 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
516 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
523 require_once
'./Services/Language/classes/class.ilLanguage.php';
524 $lng_mock = $this->createMock(
'ilLanguage', array(
'txt'), array(),
'',
false);
525 $lng_mock->expects($this->any())->method(
'txt')->will($this->returnValue(
'Test'));
528 $DIC[
'lng'] = $lng_mock;
531 $instance->addItem($item1);
532 $instance->addItem($item2);
533 $instance->addItem($item3);
534 $instance->addItem($item4);
536 $expected =
'Esther';
542 $this->assertEquals($expected, $actual);
548 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
550 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
557 require_once
'./Services/Language/classes/class.ilLanguage.php';
558 $lng_mock = $this->createMock(
'ilLanguage', array(
'txt'), array(),
'',
false);
559 $lng_mock->expects($this->any())->method(
'txt')->will($this->returnValue(
'or'));
562 $DIC[
'lng'] = $lng_mock;
565 $instance->setShuffle(
true);
566 $instance->addItem($item1);
567 $instance->addItem($item2);
568 $instance->addItem($item3);
569 $instance->addItem($item4);
571 $expected1 =
'Karl or Esther';
572 $expected2 =
'Esther or Karl';
578 $this->assertTrue(($actual == $expected1) || ($actual == $expected2));
584 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
586 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
593 require_once
'./Services/Language/classes/class.ilLanguage.php';
594 $lng_mock = $this->createMock(
'ilLanguage', array(
'txt'), array(),
'',
false);
595 $lng_mock->expects($this->any())->method(
'txt')->will($this->returnValue(
'Test'));
598 $DIC[
'lng'] = $lng_mock;
601 $instance->addItem($item1);
602 $instance->addItem($item2);
603 $instance->addItem($item3);
604 $instance->addItem($item4);
612 $this->assertEquals($expected, $actual);
618 require_once
'./Modules/TestQuestionPool/classes/class.assClozeGap.php';
620 require_once
'./Modules/TestQuestionPool/classes/class.assAnswerCloze.php';
627 require_once
'./Services/Language/classes/class.ilLanguage.php';
628 $lng_mock = $this->createMock(
'ilLanguage', array(
'txt'), array(),
'',
false);
629 $lng_mock->expects($this->any())->method(
'txt')->will($this->returnValue(
'Test'));
632 $DIC[
'lng'] = $lng_mock;
635 $instance->addItem($item1);
636 $instance->addItem($item2);
637 $instance->addItem($item3);
638 $instance->addItem($item4);
646 $this->assertEquals($expected, $actual);
651 $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
652 $transformationMock->expects(self::any())->method(
'transform')->willReturnCallback(
static function (array $array) {
656 return $transformationMock;
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
test_addGetItem_shouldReturnValueUnchanged()
test_getItemsWithShuffle_shouldReturnItemsAddedShuffled()
test_getMaxWidth_shouldReturnCharacterCountOfLongestAnswertext()
test_getBestSolutionOutput_shouldReturnBestSolutionOutput_CaseNumeric()
test_getBestSolutionOutput_shouldReturnBestSolutionOutput_CaseTextMulti()
test_instantiateObject_shouldReturnInstance()
test_setType_shouldSetDefaultIfNotPassed()
Class for cloze question gaps.
test_getItemsRaw_shouldReturnItemsAdded()
test_addGetItem_shouldReturnValueUnchangedMultiplePlus()
test_clearItems_shouldClearItems()
test_setItemUpperBound_shouldSetItemsAnswerIfBoundTooLow()
test_deleteItem_shouldDeleteGivenItem()
test_setItemLowerBound_shouldSetItemsLowerBound()
test_getItemCount_shouldReturnCorrectCount()
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
test_getBestSolutionIndexes_shouldReturnBestSolutionIndexes()
getDummyTransformationMock()
test_setItemUpperBound_shouldSetItemsUpperBound()
test_arrayShuffle_shouldNotReturnArrayUnshuffled()
test_getBestSolutionOutput_shouldReturnBestSolutionOutput_CaseText()
test_getItem_shouldReturnNullIfNoItemAtGivenIndex()
test_getItems_shouldReturnItemsAdded()
test_getBestSolutionOutput_shouldReturnEmptyStringOnUnknownType_WhichMakesNoSenseButK()
setGlobalVariable(string $name, $value)
test_addGetItem_shouldReturnValueUnchangedMultiple()
test_setItemLowerBound_shouldSetItemsAnswerIfBoundTooHigh()
test_setGetType_shouldReturnUnchangedValue()
test_setGetShuffle_shouldReturnUnchangedValue()