/**
  * @param \_OurBrand_\Quiz\Domain\Model\Exercises\MultipleChoiceQuestion $question
  */
 public function addQuestion($question)
 {
     $question->setExercise($this);
     $question->setNumber($this->questions->count());
     $this->questions->add($question);
     $this->maxScore = $this->questions->count();
 }
 /**
  * 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;
 }