ILIAS  trunk Revision v11.0_alpha-1843-g9e1fad99175
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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 
55  public function test_arrayShuffle_shouldShuffleArray(): void
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...