/**
  * Test two questions. Max score = 2
  * @test
  * @dataProvider answerDataProvider
  * @param int $expected
  * @param array $answers
  */
 public function calculateScoreForAnswersWorks($expected, $answers)
 {
     $exercise = new MultipleChoiceSameAnswerExercise();
     $question = new MultipleChoiceQuestion();
     $question->setText('Question');
     $rightAnswer = new MultipleChoicePossibleAnswer();
     $rightAnswer->setNumber(0);
     $rightAnswer->setText('Answer');
     $rightAnswer->setIsCorrectAnswer(true);
     $question->addPossibleAnswer($rightAnswer);
     $wrongAnswer = new MultipleChoicePossibleAnswer();
     $wrongAnswer->setNumber(1);
     $wrongAnswer->setText('Answer');
     $wrongAnswer->setIsCorrectAnswer(false);
     $question->addPossibleAnswer($wrongAnswer);
     $exercise->addQuestion($question);
     $question = new MultipleChoiceQuestion();
     $question->setText('Question');
     $rightAnswer = new MultipleChoicePossibleAnswer();
     $rightAnswer->setNumber(0);
     $rightAnswer->setText('Answer');
     $rightAnswer->setIsCorrectAnswer(true);
     $question->addPossibleAnswer($rightAnswer);
     $rightAnswer = new MultipleChoicePossibleAnswer();
     $rightAnswer->setNumber(1);
     $rightAnswer->setText('Answer');
     $rightAnswer->setIsCorrectAnswer(false);
     $question->addPossibleAnswer($rightAnswer);
     $exercise->addQuestion($question);
     $this->assertSame($expected, $exercise->calculateScoreForAnswers($answers));
 }
 /**
  * @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);
     }
 }