ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
assClozeSelectGapTest.php
Go to the documentation of this file.
1<?php
2
20
30{
31 protected $backupGlobals = false;
32
33 protected function setUp(): void
34 {
35 chdir(__DIR__ . '/../../../../');
36 }
37
39 {
40 $instance = new assClozeSelectGap(1); // 1 - select gap
41
42 $this->assertInstanceOf(assClozeSelectGap::class, $instance);
43 }
44
46 {
47 $instance = new assClozeSelectGap(1); // 1 - select gap
48 $expected = true;
49
50 $actual = $instance->getShuffle();
51
52 $this->assertEquals($expected, $actual);
53 }
54
56 {
57 $instance = new assClozeSelectGap(1); // 1 - select gap
58 $expected = ['shfksdfs', 'sfsdf', 'sdfsdfdf'];
59
60 $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
61 $transformationMock->expects(self::once())->method('transform')->willReturn($expected);
62 $actual = $instance->getItems($transformationMock);
63 $this->assertEquals($expected, $actual);
64 }
65
67 {
68 $instance = new assClozeSelectGap(1); // 1 - select gap
69 $item1 = new assAnswerCloze('Bert', 1.0, 0);
70 $item2 = new assAnswerCloze('Fred', 2.0, 2);
71 $item3 = new assAnswerCloze('Karl', 4, 1);
72 $item4 = new assAnswerCloze('Esther', 4, 3);
73 $item5 = new assAnswerCloze('Herbert', 1.0, 4);
74 $item6 = new assAnswerCloze('Karina', 1.0, 5);
75 $item7 = new assAnswerCloze('Helmut', 1.0, 6);
76 $item8 = new assAnswerCloze('Kerstin', 1.0, 7);
77
78 $instance->addItem($item1);
79 $instance->addItem($item2);
80 $instance->addItem($item3);
81 $instance->addItem($item4);
82 $instance->addItem($item5);
83 $instance->addItem($item6);
84 $instance->addItem($item7);
85 $instance->addItem($item8);
86
87 $instance->setType(true);
88
89 $sequence = [$item1, $item3, $item2, $item4, $item5, $item6, $item7, $item8];
90 $expectedSequence = array_reverse($sequence);
91
92 $randomElmProvider = $this->getMockBuilder(Transformation::class)->getMock();
93 $randomElmProvider->expects($this->once())
94 ->method('transform')
95 ->with($sequence)
96 ->willReturn($expectedSequence);
97
98 $actual = $instance->getItems($randomElmProvider);
99 $this->assertEquals($actual, $expectedSequence);
100 }
101
103 {
104 $instance = new assClozeSelectGap(1); // 1 - select gap
105 $item1 = new assAnswerCloze('Bert', 1.0, 0);
106 $item2 = new assAnswerCloze('Fred', 2.0, 1);
107 $item3 = new assAnswerCloze('Karl', 4, 2);
108 $item4 = new assAnswerCloze('Esther', 4, 3);
109
110 $instance->addItem($item1);
111 $instance->addItem($item2);
112 $instance->addItem($item3);
113 $instance->addItem($item4);
114
115 $instance->setType(false);
116
117 $expected = [$item1, $item2, $item3, $item4];
118 $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
119 $transformationMock->expects(self::once())->method('transform')->willReturnCallback(function ($value) {
120 return $value;
121 });
122 $actual = $instance->getItems($transformationMock);
123
124 $this->assertEquals($expected, $actual);
125 }
126}
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Class assBaseTestCase.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
A transformation is a function from one datatype to another.