From d40d4c1468314fa39cadb8dc9b093dda9b3545fb Mon Sep 17 00:00:00 2001 From: FelixKrull Date: Tue, 25 Jan 2022 10:13:08 +0100 Subject: [PATCH] Imnplement checkFigureInBase method --- src/main/java/Player.java | 12 +++++++ src/test/java/PlayerTest.java | 65 ++++++++++++++++++++++++++++++++--- 2 files changed, 73 insertions(+), 4 deletions(-) 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/PlayerTest.java b/src/test/java/PlayerTest.java index fc8537c..ac7e92f 100644 --- a/src/test/java/PlayerTest.java +++ b/src/test/java/PlayerTest.java @@ -59,9 +59,21 @@ public class PlayerTest { assertThat(calculatedResult).describedAs("Check Win").isEqualTo(expectedResult); } + @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 FieldStream() { 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) + ); + } }