/** * Tests answers methods */ public function testAnswers() { $this->set->setAnswer(0, 'my first answer'); $this->set->setAnswer(1, 'my second answer'); $this->assertCount(2, $this->set->getAnswers()); $this->assertEquals('my first answer', $this->set->getAnswer(0)); $this->assertEquals('my second answer', $this->set->getAnswer(1)); }
/** * Ask questions * * @param Set $set A Certificationy questions Set instance * @param InputInterface $input A Symfony Console input instance * @param OutputInterface $output A Symfony Console output instance */ protected function askQuestions(Set $set, InputInterface $input, OutputInterface $output) { $questionHelper = $this->getHelper('question'); $showMultipleChoice = $input->getOption('show-multiple-choice'); $questionCount = 1; foreach ($set->getQuestions() as $i => $question) { $choiceQuestion = new ChoiceQuestion(sprintf('Question <comment>#%d</comment> [<info>%s</info>] %s' . ($showMultipleChoice === true ? "\n" . 'This question <comment>' . ($question->isMultipleChoice() === true ? 'IS' : 'IS NOT') . "</comment> multiple choice." : ""), $questionCount++, $question->getCategory(), $question->getQuestion()), $question->getAnswersLabels()); $multiSelect = $showMultipleChoice === true ? $question->isMultipleChoice() : true; $choiceQuestion->setMultiselect($multiSelect); $choiceQuestion->setErrorMessage('Answer %s is invalid.'); $answer = $questionHelper->ask($input, $output, $choiceQuestion); $answers = true === $multiSelect ? $answer : array($answer); $answer = true === $multiSelect ? implode(', ', $answer) : $answer; $set->setAnswer($i, $answers); if ($input->getOption("training")) { $uniqueSet = new Set(array($i => $question)); $uniqueSet->setAnswer($i, $answers); $this->displayResults($uniqueSet, $output); } $output->writeln('<comment>✎ Your answer</comment>: ' . $answer . "\n"); } }