/**
  * @param \_OurBrand_\Quiz\Domain\Model\Exercises\MultipleChoicePossibleAnswer $possibleAnswer
  */
 public function addPossibleAnswer($possibleAnswer)
 {
     $possibleAnswer->setQuestion($this);
     $possibleAnswer->setNumber($this->possibleAnswers->count());
     $this->possibleAnswers->add($possibleAnswer);
 }
 /**
  * @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;
 }
 /**
  * @param array $possibleAnswersArray
  */
 public function setPossibleAnswersFromArray($possibleAnswersArray)
 {
     $this->possibleAnswers->clear();
     $correctAnswerHasBeenSet = FALSE;
     foreach ($possibleAnswersArray as $possibleAnswerData) {
         $possibleAnswer = new MultipleChoicePossibleAnswer();
         $possibleAnswer->setText($possibleAnswerData['text']);
         $possibleAnswer->setIsCorrectAnswer($possibleAnswerData['correctAnswer'] ? TRUE : FALSE);
         if ($possibleAnswer->getIsCorrectAnswer()) {
             $correctAnswerHasBeenSet = TRUE;
         }
         if (isset($possibleAnswerData['new_image']) && is_a($possibleAnswerData['new_image'], '\\_OurBrand_\\Quiz\\Domain\\Model\\ImageResource')) {
             $possibleAnswer->setImage($possibleAnswerData['new_image']);
         }
         $this->addPossibleAnswer($possibleAnswer);
     }
     // Ensure there is a correct answer to this question.
     if ($this->possibleAnswers->count() && !$correctAnswerHasBeenSet) {
         $this->possibleAnswers->first()->setIsCorrectAnswer(TRUE);
     }
 }