diff --git a/schach/pom.xml b/schach/pom.xml
index 77507e0..3674f62 100644
--- a/schach/pom.xml
+++ b/schach/pom.xml
@@ -33,13 +33,12 @@
chesslib
1.3.4
-
-
- junit
- junit
- 3.8.1
- test
-
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.2
+ test
+
org.mockito
diff --git a/schach/src/test/java/de/hs_mannheim/informatik/chess/test/AppTest.java b/schach/src/test/java/de/hs_mannheim/informatik/chess/test/AppTest.java
deleted file mode 100644
index e1d673d..0000000
--- a/schach/src/test/java/de/hs_mannheim/informatik/chess/test/AppTest.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package de.hs_mannheim.informatik.chess.test;
-
-import junit.framework.*;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
- extends TestCase
-{
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public AppTest( String testName )
- {
- super( testName );
- }
-
- /**
- * @return the suite of tests being tested
- */
- public static TestSuite suite()
- {
- return new TestSuite( AppTest.class );
- }
-
- /**
- * Rigourous Test :-)
- */
- public void testApp()
- {
- assertTrue( true );
- }
-}
diff --git a/schach/src/test/java/de/hs_mannheim/informatik/chess/test/ControllerTest.java b/schach/src/test/java/de/hs_mannheim/informatik/chess/test/ControllerTest.java
deleted file mode 100644
index 17833ac..0000000
--- a/schach/src/test/java/de/hs_mannheim/informatik/chess/test/ControllerTest.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package de.hs_mannheim.informatik.chess.test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-import de.hs_mannheim.informatik.chess.controller.GameController;
-import de.hs_mannheim.informatik.chess.controller.GameEndCallback;
-import de.hs_mannheim.informatik.chess.model.*;
-import de.hs_mannheim.informatik.chess.view.GameGui;
-
-
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-import static org.mockito.Mockito.*;
-
-import java.util.List;
-
-import javax.swing.JLabel;
-
-public class ControllerTest {
-
-
- private GameController controller;
- private ChessEngine engineMock;
- private GameGui guiMock;
- private GameEndCallback callback;
-
-
-
- @BeforeEach
- public void setUp() {
- engineMock = mock(ChessEngine.class);
- guiMock = mock(GameGui.class);
-
- // Simuliere 8x8 JLabel-Felder
- JLabel[][] fakeFields = new JLabel[8][8];
- for (int row = 0; row < 8; row++) {
- for (int col = 0; col < 8; col++) {
- fakeFields[row][col] = new JLabel();
- when(guiMock.getField(row, col)).thenReturn(fakeFields[row][col]);
- }
- }
- // Simuliere Flip-Button (falls verwendet)
- when(guiMock.getFlipBoardButton()).thenReturn(new javax.swing.JButton());
-
- // Jetzt ist der Controller sicher
- controller = new GameController(guiMock, engineMock, callback);
- }
-
- @Test //Testet dass keine Fehlermeldung bei legalen Move kommt
- public void reagiertRichtigAufMove_WennMoveErlaubt() {
- MoveDTO move = new MoveDTO(1, 1, 2, 2);
- when(engineMock.move(move)).thenReturn(true);
- when(engineMock.getMoveListStringsGrouped()).thenReturn(List.of("1. e4 e5"));
-
- controller.handleMove(move);
-
- verify(guiMock).updateMoveList(List.of("1. e4 e5"));
- verify(guiMock, never()).displayMessage("Ungültiger Zug!");
- }
-
-
- @Test //Testet dass keine Fehlermeldung bei legalen Move kommt
- public void reagiertRichtigAufMove_WennMoveNichtErlaubt() {
- MoveDTO move = new MoveDTO(1, 1, 2, 2);
- when(engineMock.move(move)).thenReturn(false);
-
- controller.handleMove(move);
- verify(guiMock).displayMessage("Ungültiger Zug!");
- verify(guiMock, never()).updateMoveList(any());
- }
-
-
-
-
-}
diff --git a/schach/src/test/java/de/hs_mannheim/informatik/chess/test/ModelTest.java b/schach/src/test/java/de/hs_mannheim/informatik/chess/test/ModelTest.java
index 6c7d620..c8fae4b 100644
--- a/schach/src/test/java/de/hs_mannheim/informatik/chess/test/ModelTest.java
+++ b/schach/src/test/java/de/hs_mannheim/informatik/chess/test/ModelTest.java
@@ -142,5 +142,81 @@ class ModelTest {
assertTrue(engine.isDraw());
}
+ @Test
+ public void MethodeGibtRichtigeFigurZurück() {
+ String type = "KING";
+ String color= "WHITE";
+ PieceDTO test = engine.getPieceAt("E1");
+ assertEquals(type, test.getType());
+ assertEquals(color, test.getColor());
+ }
+
+ @Test
+ public void MethodeGibtRichtigenPlayerZurück() {
+ assertEquals("WHITE", engine.getCurrentPlayer());
+ engine.move(new MoveDTO(6, 4, 4, 4));
+ assertEquals("BLACK", engine.getCurrentPlayer());
+ }
+
+ @Test
+ public void MethodeSetztBoardRichtigzurück() {
+ engine.move(new MoveDTO(6,4,4,4)); // e2-e4
+ engine.move(new MoveDTO(1,4,3,4)); // e7-e5
+ engine.setPositionToMoveIndex(1);
+ PieceDTO pawn = engine.getPieceAt("E4");
+ assertNotNull(pawn);
+ assertEquals("PAWN", pawn.getType());
+ assertNull(engine.getPieceAt("E5"));
+ assertEquals(1, engine.getCurrentMoveIndex());
+ }
+
+ @Test
+ public void FigurZurQueenBefördernklappt() {
+ engine.setPositionFromFEN("8/P7/8/8/8/8/8/k6K w - - 0 1"); // Weißer Bauer auf a7, Weiß am Zug
+ boolean moved = engine.moveWithPromotion(new MoveDTO(1, 0, 0, 0), "QUEEN"); // a7-a8=Dame
+ assertTrue(moved);
+ PieceDTO piece = engine.getPieceAt("A8");
+ assertEquals("QUEEN", piece.getType());
+ assertEquals("WHITE", piece.getColor());
+ }
+
+ @Test
+ public void fenAufbauFunktioniert() {
+ // Beispiel-FEN: Weißer König auf e1, schwarze Dame auf d8, schwarzer Bauer auf a7, Rest leer
+ String fen = "3q4/p7/8/8/8/8/8/4K3 w - - 0 1";
+ engine.setPositionFromFEN(fen);
+
+ // Kontrolliere schwarze Dame auf d8 (0,3)
+ PieceDTO d8 = engine.getPieceAt("D8");
+ assertEquals("QUEEN", d8.getType());
+ assertEquals("BLACK", d8.getColor());
+
+ // Kontrolliere schwarzen Bauern auf a7 (1,0)
+ PieceDTO a7 = engine.getPieceAt("A7");
+ assertEquals("PAWN", a7.getType());
+ assertEquals("BLACK", a7.getColor());
+
+ // Kontrolliere weißen König auf e1 (7,4)
+ PieceDTO e1 = engine.getPieceAt("E1");
+ assertEquals("KING", e1.getType());
+ assertEquals("WHITE", e1.getColor());
+
+ // Leeres Feld testen: e2 (6,4)
+ PieceDTO e2 = engine.getPieceAt("E2");
+ assertNull(e2);
+
+ // Leeres Feld testen: h5 (3,7)
+ PieceDTO h5 = engine.getPieceAt("H5");
+ assertNull(h5);
+ }
+
+
+ @Test
+ public void timerWirdRichtigErstellt() {
+ engine.initTimers(5, 30);
+ assertEquals(330, engine.getWhiteTimer().getSecondsLeft());
+ assertEquals(330, engine.getBlackTimer().getSecondsLeft());
+ }
+
}
\ No newline at end of file
diff --git a/schach/target/classes/META-INF/maven/de.hs-mannheim.informatik.schach/schach/pom.xml b/schach/target/classes/META-INF/maven/de.hs-mannheim.informatik.schach/schach/pom.xml
index 77507e0..3674f62 100644
--- a/schach/target/classes/META-INF/maven/de.hs-mannheim.informatik.schach/schach/pom.xml
+++ b/schach/target/classes/META-INF/maven/de.hs-mannheim.informatik.schach/schach/pom.xml
@@ -33,13 +33,12 @@
chesslib
1.3.4
-
-
- junit
- junit
- 3.8.1
- test
-
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.2
+ test
+
org.mockito