/** * @test */ public function nextExerciseWorks() { $quiz = new Quiz(); $exercise1 = new Exercise(); $exercise1->setTitle('firstExercise'); $quiz->addExercise($exercise1); $exercise2 = new Exercise(); $exercise2->setTitle('secondExercise'); $quiz->addExercise($exercise2); $nextExercise = $quiz->findNextExercise($exercise1); $this->assertSame('secondExercise', $nextExercise->getTitle()); $nullExercise = $quiz->findNextExercise($exercise2); $this->assertSame(false, $nullExercise); }
/** * @param string $goto * @param \_OurBrand_\Quiz\Domain\Model\Quiz $quiz * @param \_OurBrand_\Quiz\Domain\Model\Exercise $exercise */ public function previewNavigateAction($goto, $quiz, $exercise = null) { if ($quiz->getExercises()->count() == 0 || $exercise == null) { $this->redirect('previewstart', 'quiz', null, array('quiz' => $quiz)); } if ($goto == "next" && !is_null($exercise)) { $exercise = $quiz->findNextExercise($exercise); } elseif ($goto == "prev" && !is_null($exercise)) { $exercise = $quiz->findPrevExercise($exercise); } elseif (is_numeric($goto)) { $exercises = $quiz->getExercises(); $exercise = $exercises[$goto]; } $this->redirect('preview', 'exercise', null, array('exercise' => $exercise)); }