예제 #1
0
 /**
  * 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));
 }
예제 #2
0
 /**
  * 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");
     }
 }