/** * Set questions for this exercise from data array. * All questions will be overwritten. * Data array must be in this format: * <code> * $newQuestions = array( * array( * 'text' => 'Question text', * 'hint' => 'Question hint', * 'possibleAnswers' => array( * * ) * ) * ); * </code> * * @param array $newQuestions */ public function setQuestionsFromArray($newQuestions) { $this->questions->clear(); for ($i = 0; $i < count($newQuestions); $i++) { if (!empty($newQuestions[$i]['text'])) { $question = new MultipleChoiceQuestion(); $question->setText($newQuestions[$i]['text']); $question->setHint($newQuestions[$i]['hint']); $question->setPossibleAnswersFromArray($newQuestions[$i]['possibleAnswers']); $this->addQuestion($question); } } }
/** * @return array */ public function readyForCompletionDataProvider() { $exercises = array(); $exercise = new MultipleChoiceSameAnswerExercise(); $exercises['empty'] = array($exercise, 0); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercises['no question'] = array($exercise, 0); $question = new MultipleChoiceQuestion(); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['empty question'] = array($exercise, 0); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['no answers'] = array($exercise, 0); $answer = new MultipleChoicePossibleAnswer(); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $question->addPossibleAnswer($answer); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['empty answer'] = array($exercise, 0); $answer = new MultipleChoicePossibleAnswer(); $answer->setText('Answer'); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $question->addPossibleAnswer($answer); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['only one answer'] = array($exercise, 0); $answer = new MultipleChoicePossibleAnswer(); $answer->setText('Answer'); $answer2 = new MultipleChoicePossibleAnswer(); $answer2->setText('Answer'); $question = new MultipleChoiceQuestion(); $question->setText('Question'); $question->addPossibleAnswer($answer); $question->addPossibleAnswer($answer2); $exercise = new MultipleChoiceSameAnswerExercise(); $exercise->setTitle('Title'); $exercise->setDescription('Description'); $exercise->addQuestion($question); $exercises['ready'] = array($exercise, 1); return $exercises; }