ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
assClozeSelectGapTest.php
Go to the documentation of this file.
1 <?php
2 
19 
29 {
30  protected $backupGlobals = false;
31 
32  protected function setUp(): void
33  {
34  chdir(__DIR__ . '/../../../../');
35  }
36 
38  {
39  $instance = new assClozeSelectGap(1); // 1 - select gap
40 
41  $this->assertInstanceOf(assClozeSelectGap::class, $instance);
42  }
43 
45  {
46  $instance = new assClozeSelectGap(1); // 1 - select gap
47  $expected = true;
48 
49  $actual = $instance->getShuffle();
50 
51  $this->assertEquals($expected, $actual);
52  }
53 
54  public function test_arrayShuffle_shouldShuffleArray(): void
55  {
56  $instance = new assClozeSelectGap(1); // 1 - select gap
57  $expected = ['shfksdfs', 'sfsdf', 'sdfsdfdf'];
58 
59  $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
60  $transformationMock->expects(self::once())->method('transform')->willReturn($expected);
61  $actual = $instance->getItems($transformationMock);
62  $this->assertEquals($expected, $actual);
63  }
64 
66  {
67  $instance = new assClozeSelectGap(1); // 1 - select gap
68  $item1 = new assAnswerCloze('Bert', 1.0, 0);
69  $item2 = new assAnswerCloze('Fred', 2.0, 2);
70  $item3 = new assAnswerCloze('Karl', 4, 1);
71  $item4 = new assAnswerCloze('Esther', 4, 3);
72  $item5 = new assAnswerCloze('Herbert', 1.0, 4);
73  $item6 = new assAnswerCloze('Karina', 1.0, 5);
74  $item7 = new assAnswerCloze('Helmut', 1.0, 6);
75  $item8 = new assAnswerCloze('Kerstin', 1.0, 7);
76 
77  $instance->addItem($item1);
78  $instance->addItem($item2);
79  $instance->addItem($item3);
80  $instance->addItem($item4);
81  $instance->addItem($item5);
82  $instance->addItem($item6);
83  $instance->addItem($item7);
84  $instance->addItem($item8);
85 
86  $instance->setType(true);
87 
88  $sequence = [$item1, $item3, $item2, $item4, $item5, $item6, $item7, $item8];
89  $expectedSequence = array_reverse($sequence);
90 
91  $randomElmProvider = $this->getMockBuilder(Transformation::class)->getMock();
92  $randomElmProvider->expects($this->once())
93  ->method('transform')
94  ->with($sequence)
95  ->willReturn($expectedSequence);
96 
97  $actual = $instance->getItems($randomElmProvider);
98  $this->assertEquals($actual, $expectedSequence);
99  }
100 
102  {
103  $instance = new assClozeSelectGap(1); // 1 - select gap
104  $item1 = new assAnswerCloze('Bert', 1.0, 0);
105  $item2 = new assAnswerCloze('Fred', 2.0, 1);
106  $item3 = new assAnswerCloze('Karl', 4, 2);
107  $item4 = new assAnswerCloze('Esther', 4, 3);
108 
109  $instance->addItem($item1);
110  $instance->addItem($item2);
111  $instance->addItem($item3);
112  $instance->addItem($item4);
113 
114  $instance->setType(false);
115 
116  $expected = [$item1, $item2, $item3, $item4];
117  $transformationMock = $this->getMockBuilder(Transformation::class)->getMock();
118  $transformationMock->expects(self::once())->method('transform')->willReturnCallback(function ($value) {
119  return $value;
120  });
121  $actual = $instance->getItems($transformationMock);
122 
123  $this->assertEquals($expected, $actual);
124  }
125 }
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...