From 1ad76212f699df08b8857a36b164bafe8b9cb84e Mon Sep 17 00:00:00 2001 From: 3013016 Date: Mon, 6 Jan 2025 23:47:10 +0100 Subject: [PATCH] Dialog Manager GUI Test --- src/test/java/HitoriDialogManagerTest.java | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 src/test/java/HitoriDialogManagerTest.java diff --git a/src/test/java/HitoriDialogManagerTest.java b/src/test/java/HitoriDialogManagerTest.java new file mode 100644 index 0000000..9a28c3a --- /dev/null +++ b/src/test/java/HitoriDialogManagerTest.java @@ -0,0 +1,78 @@ +import domain.HitoriBoardLoader; +import GUI.HitoriDialogManager; +import javafx.stage.Stage; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.extension.ExtendWith; +import org.testfx.framework.junit5.ApplicationExtension; +import org.testfx.framework.junit5.Start; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +@ExtendWith(ApplicationExtension.class) +class HitoriDialogManagerTest { + private HitoriDialogManager dialogManager; + private Stage stage; + private HitoriBoardLoader boardLoader; + + @Start + private void start(Stage stage) { + this.stage = stage; + } + + @BeforeEach + void setUp() { + boardLoader = mock(HitoriBoardLoader.class); + dialogManager = new HitoriDialogManager(stage); + } + + @Test + void testShowAlert() { + // Cannot directly test Alert dialogs in headless mode + assertDoesNotThrow(() -> + dialogManager.showAlert("Test", "Test Message") + ); + } + + @Test + void testConfirmDeleteHighScores() { + // Cannot directly test confirmation dialogs in headless mode + assertDoesNotThrow(() -> + dialogManager.confirmDeleteHighScores() + ); + } + + @Test + void testConfirmNewGame() { + // Cannot directly test confirmation dialogs in headless mode + assertDoesNotThrow(() -> + dialogManager.confirmNewGame() + ); + } + + @Test + void testAskForPlayerName() { + // Cannot directly test input dialogs in headless mode + assertDoesNotThrow(() -> + dialogManager.askForPlayerName() + ); + } + + @Test + void testConfirmLoadSavedGame() { + // Cannot directly test confirmation dialogs in headless mode + assertDoesNotThrow(() -> + dialogManager.confirmLoadSavedGame() + ); + } + + @Test + void testShowBoardSelectionDialog() { + // Cannot directly test choice dialogs in headless mode + when(boardLoader.getAvailableBoardNames()) + .thenReturn(java.util.Arrays.asList("Board1", "Board2")); + + assertDoesNotThrow(() -> + dialogManager.showBoardSelectionDialog(boardLoader) + ); + } +} \ No newline at end of file -- 2.51.0