diff --git a/src/main/java/Player.java b/src/main/java/Player.java index 8725f74..b5da374 100644 --- a/src/main/java/Player.java +++ b/src/main/java/Player.java @@ -38,4 +38,16 @@ public class Player { } return true; } + + public boolean checkFigureInBase(Collection
figures) { + Iterator
it = figures.iterator(); + Figure f; + for(;it.hasNext();) { + f = it.next(); + if(f.getPosition() == -1) { + return true; + } + } + return false; + } } diff --git a/src/test/java/GameTest.java b/src/test/java/GameTest.java index 6480543..bd47a51 100644 --- a/src/test/java/GameTest.java +++ b/src/test/java/GameTest.java @@ -2,20 +2,12 @@ import org.junit.jupiter.api.BeforeEach; public class GameTest { - private Gameboard gb; - private Player p1; - private Player p2; - private Player p3; - private Player p4; + private Game g; + @BeforeEach void setup() { - this.gb = new Gameboard(); - gb.initGameboard(); - p1 = new Player("Rot", 40, 43); - p2 = new Player("Blau", 44, 47); - p3 = new Player("Gelb", 48, 51); - p4 = new Player("GrĂ¼n", 52, 55); + g = new Game(); } } diff --git a/src/test/java/PlayerTest.java b/src/test/java/PlayerTest.java index fc8537c..fed5ccd 100644 --- a/src/test/java/PlayerTest.java +++ b/src/test/java/PlayerTest.java @@ -48,7 +48,7 @@ public class PlayerTest { } @ParameterizedTest - @MethodSource("FieldStream") + @MethodSource("GameWinTestData") void checkGameWin(String testname, Collection
figures, Collection positions, boolean expectedResult) { Iterator
it = figures.iterator(); Iterator it2 = positions.iterator(); @@ -59,9 +59,21 @@ public class PlayerTest { assertThat(calculatedResult).describedAs("Check Win").isEqualTo(expectedResult); } - static Stream FieldStream() { + @ParameterizedTest + @MethodSource("BaseTestData") + void checkFigureInBase(String testname, Collection
figures, Collection positions, boolean expectedResult) { + Iterator
it = figures.iterator(); + Iterator it2 = positions.iterator(); + for(;it.hasNext();) { + it.next().setPosition(it2.next()); + } + boolean calculatedResult = p.checkFigureInBase(figures); + assertThat(calculatedResult).describedAs("Check Win").isEqualTo(expectedResult); + } + + static Stream GameWinTestData() { return Stream.of( - Arguments.of("No Figure in House", + Arguments.of("No Figures in House", Arrays.asList( new Figure(), new Figure(), @@ -77,7 +89,7 @@ public class PlayerTest { new Figure()), Arrays.asList(40, -1, -1, -1), false), - Arguments.of("Two Figure in House", + Arguments.of("Two Figures in House", Arrays.asList( new Figure(), new Figure(), @@ -85,7 +97,7 @@ public class PlayerTest { new Figure()), Arrays.asList(40, 41, -1, -1), false), - Arguments.of("Three Figure in House", + Arguments.of("Three Figures in House", Arrays.asList( new Figure(), new Figure(), @@ -93,7 +105,7 @@ public class PlayerTest { new Figure()), Arrays.asList(40, 41, 42, -1), false), - Arguments.of("Four Figure in House", + Arguments.of("Four Figures in House", Arrays.asList( new Figure(), new Figure(), @@ -103,4 +115,49 @@ public class PlayerTest { true) ); } + + static Stream BaseTestData() { + return Stream.of( + Arguments.of("Four Figures in Base", + Arrays.asList( + new Figure(), + new Figure(), + new Figure(), + new Figure()), + Arrays.asList(-1, -1, -1, -1), + true), + Arguments.of("Three Figures in Base", + Arrays.asList( + new Figure(), + new Figure(), + new Figure(), + new Figure()), + Arrays.asList(40, -1, -1, -1), + true), + Arguments.of("Two Figures in Base", + Arrays.asList( + new Figure(), + new Figure(), + new Figure(), + new Figure()), + Arrays.asList(40, 41, -1, -1), + true), + Arguments.of("One Figure in Base", + Arrays.asList( + new Figure(), + new Figure(), + new Figure(), + new Figure()), + Arrays.asList(40, 41, 42, -1), + true), + Arguments.of("No Figures in Base", + Arrays.asList( + new Figure(), + new Figure(), + new Figure(), + new Figure()), + Arrays.asList(40, 41, 42, 43), + false) + ); + } }