ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
assLongMenuTest.php
Go to the documentation of this file.
1 <?php
2 
27 {
28  protected $backupGlobals = false;
29 
30 
31  protected static function getMethod($name): ReflectionMethod
32  {
33  $class = new ReflectionClass('assLongMenu');
34  $method = $class->getMethod($name);
35  $method->setAccessible(true);
36  return $method;
37  }
38 
39  protected function setUp(): void
40  {
41  chdir(dirname(__FILE__));
42  chdir('../../../');
43 
44  parent::setUp();
45 
46  $ilCtrl_mock = $this->createMock('ilCtrl');
47  $ilCtrl_mock->expects($this->any())->method('saveParameter');
48  $ilCtrl_mock->expects($this->any())->method('saveParameterByClass');
49  $this->setGlobalVariable('ilCtrl', $ilCtrl_mock);
50 
51  $lng_mock = $this->createMock('ilLanguage', array('txt'), array(), '', false);
52  //$lng_mock->expects( $this->once() )->method( 'txt' )->will( $this->returnValue('Test') );
53  $this->setGlobalVariable('lng', $lng_mock);
54 
55  $this->setGlobalVariable('ilias', $this->getIliasMock());
56  $this->setGlobalVariable('tpl', $this->getGlobalTemplateMock());
57  $this->setGlobalVariable('ilDB', $this->getDatabaseMock());
58  }
59 
61  {
62  $instance = new assLongMenu();
63  $this->assertInstanceOf('assLongMenu', $instance);
64  }
65 
67  {
68  $instance = new assLongMenu();
69  $this->assertEquals('qpl_qst_lome', $instance->getAdditionalTableName());
70  }
71 
73  {
74  $instance = new assLongMenu();
75  $this->assertEquals('assLongMenu', $instance->getQuestionType());
76  }
77 
79  {
80  $instance = new assLongMenu();
81  $this->assertEquals('qpl_a_lome', $instance->getAnswerTableName());
82  }
83 
85  {
86  $method = self::getMethod('correctAnswerDoesNotExistInAnswerOptions');
87  $obj = new assLongMenu();
88  $value = $method->invokeArgs($obj, array(array(array(5),1,1), array(1,2,3,4)));
89  $this->assertEquals(true, $value);
90  }
91 
93  {
94  $method = self::getMethod('correctAnswerDoesNotExistInAnswerOptions');
95  $obj = new assLongMenu();
96  $value = $method->invokeArgs($obj, array(array(array(1),1,1), array(1,2,3,4)));
97  $this->assertEquals(false, $value);
98  }
99 
100  public function test_getMaximumPoints_shouldBeFour(): void
101  {
102  $obj = new assLongMenu();
103  $obj->setCorrectAnswers(array( 0 => array( 0 => array(0 => 'answer'),1 => '2', 2 => '1'),
104  1 => array( 0 => array(0 => 'answer'),1 => '2', 2 => '1')));
105  $value = $obj->getMaximumPoints();
106  $this->assertEquals(4, $value);
107  }
108 
110  {
111  $obj = new assLongMenu();
112  $obj->setCorrectAnswers(array( 0 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1'),
113  1 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1')));
114  $value = $obj->getMaximumPoints();
115  $this->assertEquals(4.5, $value);
116  }
117 
118  public function test_isComplete_shouldBeFalse(): void
119  {
120  $obj = new assLongMenu();
121  $obj->setCorrectAnswers(array( 0 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1'),
122  1 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1')));
123  $obj->setAnswers(array(array(1,2,3,4)));
124  $this->assertEquals($obj->isComplete(), false);
125  }
126 
127  /* Removed by @kergomard 17 NOV 2022, we should introduce this again
128  public function test_isComplete_shouldBeTrue(): void
129  {
130  $obj = new assLongMenu();
131  $obj->setCorrectAnswers(array( 0 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1'),
132  1 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1')));
133  $obj->setAnswers(array(array(1,2,3,4)));
134  $obj->setAuthor("Tester");
135  $obj->setPoints(4.5);
136  $obj->setTitle('LongMenu Title');
137  $obj->setLongMenuTextValue('LongMenu Question');
138  $this->assertEquals($obj->isComplete(), true);
139  } */
140 
142  {
143  $obj = new assLongMenu();
144  $this->assertEquals($obj->checkQuestionCustomPart(), false);
145  }
146 
148  {
149  $obj = new assLongMenu();
150  $obj->setAnswers(array(array(1,2,3,4)));
151  $this->assertEquals($obj->checkQuestionCustomPart(), false);
152  }
153 
155  {
156  $obj = new assLongMenu();
157  $obj->setCorrectAnswers(array( 0 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1'),
158  1 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1')));
159  $this->assertEquals($obj->checkQuestionCustomPart(), false);
160  }
162  {
163  $obj = new assLongMenu();
164  $obj->setCorrectAnswers(array( 0 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1'),
165  1 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1')));
166  $obj->setAnswers(array(array('answer')));
167  $this->assertEquals($obj->checkQuestionCustomPart(), false);
168  }
170  {
171  $obj = new assLongMenu();
172  $obj->setCorrectAnswers(array( 0 => array( 0 => array(0 => 'answer'),1 => '2.25', 2 => '1')));
173  $obj->setAnswers(array(array(1)));
174  $this->assertEquals($obj->checkQuestionCustomPart(), false);
175  }
176 
178  {
179  $obj = new assLongMenu();
180  $obj->setCorrectAnswers(array( 0 => array( 0 => array(),1 => '2.25', 2 => '1')));
181  $obj->setAnswers(array(array('answer')));
182  $this->assertEquals($obj->checkQuestionCustomPart(), false);
183  }
184 
186  {
187  $obj = new assLongMenu();
188  $obj->setCorrectAnswers(array( 0 => array( 0 => array())));
189  $obj->setAnswers(array(array('answer')));
190  $this->assertEquals($obj->checkQuestionCustomPart(), false);
191  }
192 
194  {
195  $obj = new assLongMenu();
196  $obj->setCorrectAnswers(array( 0 => array( 0 => array('answer'),1 => 0, 2 => '1')));
197  $obj->setAnswers(array(array('answer')));
198  $this->assertEquals($obj->checkQuestionCustomPart(), false);
199  }
200 
202  {
203  $obj = new assLongMenu();
204  $obj->setCorrectAnswers(array( 0 => array( 0 => array('answer'),1 => 1, 2 => '1')));
205  $obj->setAnswers(array(array('answer')));
206  $this->assertEquals($obj->checkQuestionCustomPart(), true);
207  }
208 
210  {
211  $obj = new assLongMenu();
212  $array = array( 0 => 'squirrel', 1 => 'icebear');
213  $_POST['answer'] = $array;
214  $this->assertEquals($obj->getSolutionSubmit(), $array);
215  }
216 
218  {
219  $obj = new assLongMenu();
220  $obj->setAnswerType([]);
221  $this->assertEquals([], $obj->getAnswerType());
222  }
223 
224  /* Removed by @kergomard 17 NOV 2022, we should introduce this again
225  public function test_setLongMenuTextValue_shouldReturnGetLongMenuTextValue(): void
226  {
227  $obj = new assLongMenu();
228  $this->assertEquals('', $obj->getLongMenuTextValue());
229  $obj->setLongMenuTextValue('dummy text');
230  $this->assertEquals('dummy text', $obj->getLongMenuTextValue());
231  } */
232 
234  {
235  $obj = new assLongMenu();
236  $obj->setJsonStructure(json_encode(array(1 => 'bla')));
237  $this->assertEquals('{"1":"bla"}', $obj->getJsonStructure());
238  }
239 
241  {
242  $obj = new assLongMenu();
243  $this->assertEquals(false, $obj->isShuffleAnswersEnabled());
244  $this->assertNotEquals(true, $obj->isShuffleAnswersEnabled());
245  }
246 }
test_checkQuestionCustomPart_shouldBeFalseBecauseCorrectAnswerHasNoPoints()
test_getAdditionalTableName_shouldReturnString()
test_checkQuestionCustomPart_shouldBeFalseBecauseCorrectAnswerPointsAreZero()
Class assBaseTestCase.
test_checkQuestionCustomPart_shouldBeTrue()
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
test_setAnswerType_shouldReturnGetAnswerType()
test_getMaximumPoints_shouldBeFourPointFive()
test_correctAnswerDoesNotExistInAnswerOptions_shouldReturnFalse()
static getMethod($name)
test_getSolutionSubmit_shouldReturnSolution()
test_correctAnswerDoesNotExistInAnswerOptions_shouldReturnTrue()
test_checkQuestionCustomPart_shouldBeFalseBecauseNoCustomPart()
test_checkQuestionCustomPart_shouldBeFalseBecauseOnlyCorrectAnswers()
test_instantiateObject_shouldReturnInstance()
test_getQuestionType_shouldReturnString()
test_setJsonStructure_shouldReturnGetJsonStructure()
test_isShuffleAnswersEnabled_shouldReturnFalse()
test_checkQuestionCustomPart_shouldBeFalseBecauseOnlyAnswers()
test_checkQuestionCustomPart_shouldBeFalseBecauseToManyCorrectAnswers()
test_checkQuestionCustomPart_shouldBeFalseBecauseCorrectAnswerHasNoAnswers()
test_getAnswerTableName_shouldReturnString()
setGlobalVariable(string $name, $value)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
test_checkQuestionCustomPart_shouldBeFalseBecauseCorrectAnswerDoesNotExistsInAnswers()