/** * @see ExerciseControllerInterface::updateAction(); * @param \_OurBrand_\Quiz\Domain\Model\Exercises\MatchSequenceExercise $exercise * @return void */ public function updateAction($exercise) { $phrases = array(); if ($this->request->hasArgument('phrase')) { $phrases = $this->request->getArgument('phrase'); } $exercise->setPhrasesFromArray($phrases); $exercise->randomize(); if (!$this->request->hasArgument('json')) { $this->forward('update', 'exercise', null, array('exercise' => $exercise)); } $this->forward('updateSilent', 'exercise', null, array('exercise' => $exercise, 'json' => $this->request->getArgument('json'))); }
/** * @dataProvider setRandomizeDataProvider * @param array $originalPhrases */ public function testPreOrderAnswers($originalPhrases) { $exercise = new MatchSequenceExercise(); $this->assertNull($exercise->setPhrasesFromArray($originalPhrases)); $exercise->randomize(); $phrases = $exercise->getPhrases(); $answers = $exercise->getPreorderedAnswers(); // testing that phrases from getPreorderedAnswers in sorting orders foreach ($phrases as $phrase) { $this->assertSame($answers[$phrase->getSorting()], $phrase->getPhrase()); } $i = 0; // testing that getPreorderedAnswers generate array exactly in index order (I mean, used ksort()) foreach ($answers as $key => $value) { $this->assertSame($i++, $key); } }