Група учасників отримує загадковий лист із запрошенням до старовинного маєтку на околиці міста. + Лист написаний від імені відомого історика Артема Лисенка, який зник безвісти 20 років тому. + Він стверджує, що залишив у маєтку докази давньої змови, яка може змінити історію...
+ + + + diff --git a/Eugene-JR/src/main/webapp/quiz.jsp b/Eugene-JR/src/main/webapp/quiz.jsp new file mode 100644 index 0000000..6db5d61 --- /dev/null +++ b/Eugene-JR/src/main/webapp/quiz.jsp @@ -0,0 +1,59 @@ +<%@ page import="model.Scene" %> +<%@ page import="model.Question" %> +<%@ page import="java.util.List" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + +<%= scene.getName() %>
+ + <% } else { %> + + <% } %> + + + diff --git a/Eugene-JR/src/test/java/service/QuizServiceTest.java b/Eugene-JR/src/test/java/service/QuizServiceTest.java new file mode 100644 index 0000000..01c4016 --- /dev/null +++ b/Eugene-JR/src/test/java/service/QuizServiceTest.java @@ -0,0 +1,64 @@ +package service; + +import model.Question; +import model.Scene; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import repository.QuizRepository; + +import java.util.Arrays; + +import static org.junit.jupiter.api.Assertions.*; +class QuizServiceTest { + + private QuizService quizService; + private QuizRepository quizRepository; + + @BeforeEach + void setUp() { + quizRepository = QuizRepository.getInstance(); + quizService = new QuizService(); + } + + @Test + void testInitialSceneIsCorrect() { + assertEquals(quizRepository.getScene1(), quizService.getCurrentScene(), "Initial scene should be Start"); + } + + @Test + void testSceneTransition() { + Scene initialScene = quizService.getCurrentScene(); + Scene expectedScene = initialScene.getQuestions().get(0).getNextScene(); + + Scene newScene = quizService.makeStep(0); + + assertEquals(expectedScene, newScene, "After choosing the first option, the scene should change correctly"); + } + + @Test + void testInvalidStepThrowsException() { + Scene initialScene = quizService.getCurrentScene(); + int invalidIndex = initialScene.getQuestions().size(); + + Exception exception = assertThrows(IndexOutOfBoundsException.class, () -> quizService.makeStep(invalidIndex)); + + assertTrue(exception.getMessage().contains("Index"), "Exception should be thrown for an invalid choice"); + } + + @Test + void testFinalSceneDetection() { + // Перехід до фінальної сцени (наприклад, через кілька кроків) + Scene finalScene = new Scene("Перемога").setFinal(); + Scene testScene = new Scene("Test"); + testScene.setQuestions(Arrays.asList(new Question("Go to final", finalScene))); + + quizService.setCurrentScene(testScene); + + Scene newScene = quizService.makeStep(0); + + assertTrue(newScene.isFinal(), "Final scene should be detected properly"); + assertEquals(finalScene, newScene, "Final scene should be reached correctly"); + } + + +} \ No newline at end of file