From 64218546e40299b56737c5e98201039c45b0864b Mon Sep 17 00:00:00 2001 From: 3013016 Date: Mon, 6 Jan 2025 23:48:21 +0100 Subject: [PATCH] Score Anzeige GUI Test --- src/test/java/HitoriScorePanelTest.java | 77 +++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/test/java/HitoriScorePanelTest.java diff --git a/src/test/java/HitoriScorePanelTest.java b/src/test/java/HitoriScorePanelTest.java new file mode 100644 index 0000000..4504e85 --- /dev/null +++ b/src/test/java/HitoriScorePanelTest.java @@ -0,0 +1,77 @@ +import GUI.GameUIController; +import GUI.HitoriScorePanel; +import javafx.scene.control.Button; +import javafx.scene.control.TextArea; +import org.junit.jupiter.api.*; +import org.junit.jupiter.api.extension.ExtendWith; +import org.testfx.framework.junit5.ApplicationExtension; +import static org.mockito.Mockito.*; +import static org.junit.jupiter.api.Assertions.*; + +@ExtendWith(ApplicationExtension.class) +class HitoriScorePanelTest { + private HitoriScorePanel scorePanel; + private GameUIController controller; + + @BeforeEach + void setUp() { + controller = mock(GameUIController.class); + scorePanel = new HitoriScorePanel(controller); + } + + @Test + void testInitialization() { + assertNotNull(scorePanel); + assertTrue(scorePanel.getChildren().size() > 0); + } + + @Test + void testUpdateHighScores() { + String testScores = "Player1: 100\nPlayer2: 200"; + scorePanel.updateHighScores(testScores); + + TextArea highScoreArea = findTextArea(scorePanel); + assertNotNull(highScoreArea); + assertEquals(testScores, highScoreArea.getText()); + } + + @Test + void testSaveButtonAction() { + var saveButton = findButtonByText(scorePanel, "Save Game"); + assertNotNull(saveButton); + + saveButton.fire(); + verify(controller, times(1)).saveGame(); + } + + @Test + void testDeleteHighScoresButtonAction() { + var deleteButton = findButtonByText(scorePanel, "Delete High Scores"); + assertNotNull(deleteButton); + + deleteButton.fire(); + verify(controller, times(1)).deleteHighScores(); + } + + @Test + void testHighScoreAreaNotEditable() { + TextArea highScoreArea = findTextArea(scorePanel); + assertNotNull(highScoreArea); + assertFalse(highScoreArea.isEditable()); + } + + private TextArea findTextArea(HitoriScorePanel panel) { + return (TextArea) panel.getChildren().stream() + .filter(node -> node instanceof TextArea) + .findFirst() + .orElse(null); + } + + private Button findButtonByText(HitoriScorePanel panel, String text) { + return (Button) panel.getChildren().stream() + .filter(node -> node instanceof Button && ((Button) node).getText().equals(text)) + .findFirst() + .orElse(null); + } +} + -- 2.51.0