|
|
@ -6,9 +6,7 @@ import org.junit.jupiter.params.ParameterizedTest; |
|
|
|
import org.junit.jupiter.params.provider.Arguments; |
|
|
|
import org.junit.jupiter.params.provider.MethodSource; |
|
|
|
|
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Collection; |
|
|
|
import java.util.Iterator; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
public class GameTest { |
|
|
@ -20,7 +18,7 @@ public class GameTest { |
|
|
|
@BeforeEach |
|
|
|
void setup() { |
|
|
|
g = new Game(); |
|
|
|
p1 = new Player("Rot", 1, 40, 43); |
|
|
|
p1 = g.players.get(0); |
|
|
|
} |
|
|
|
|
|
|
|
@ParameterizedTest |
|
|
@ -87,15 +85,72 @@ public class GameTest { |
|
|
|
void checkFieldClearTestFieldTakenByOtherPlayer() { |
|
|
|
int expectedResult = 1; |
|
|
|
g.players.get(1).figures.get(0).setPosition(1); |
|
|
|
int calculatedResult = g.checkFieldClear(1, g.players.get(0), g); |
|
|
|
int calculatedResult = g.checkFieldClear(1, p1, g); |
|
|
|
assertThat(calculatedResult).describedAs("Check Field Clear").isEqualTo(expectedResult); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
void checkFieldClearTestFieldTakenByOwnFigure() { |
|
|
|
int expectedResult = 2; |
|
|
|
g.players.get(0).figures.get(1).setPosition(1); |
|
|
|
int calculatedResult = g.checkFieldClear(1, g.players.get(0), g); |
|
|
|
p1.figures.get(1).setPosition(1); |
|
|
|
int calculatedResult = g.checkFieldClear(1, p1, g); |
|
|
|
assertThat(calculatedResult).describedAs("Check Field Clear").isEqualTo(expectedResult); |
|
|
|
} |
|
|
|
|
|
|
|
@ParameterizedTest |
|
|
|
@MethodSource("usableFiguresData") |
|
|
|
void getUsableFiguresTest(String testname, int dice, Collection<Integer> positions, ArrayList<Integer> expectedResult) { |
|
|
|
Iterator<Figure> figureIt = p1.figures.iterator(); |
|
|
|
Iterator<Integer> posIt = positions.iterator(); |
|
|
|
while(figureIt.hasNext()) { |
|
|
|
Figure f = figureIt.next(); |
|
|
|
f.setPosition(posIt.next()); |
|
|
|
} |
|
|
|
|
|
|
|
List<Integer> calculatedResult = g.getUsableFigures(dice, p1, g); |
|
|
|
assertThat(calculatedResult).describedAs(testname).isEqualTo(expectedResult); |
|
|
|
} |
|
|
|
|
|
|
|
static Stream<Arguments> usableFiguresData () { |
|
|
|
return Stream.of( |
|
|
|
Arguments.of( //Würfel 1-6 - Keine Figur im Ziel - Alle Figuren auf dem Spielfeld - StartFeld frei - Keine Figur vor Ziel |
|
|
|
"Alle Figuren", |
|
|
|
1, |
|
|
|
Arrays.asList(10, 25, 2, 17), |
|
|
|
new ArrayList<>(Arrays.asList(0, 1, 2, 3)) |
|
|
|
), |
|
|
|
Arguments.of( //Würfel 6 - Keine Figur im Ziel - 1 Figur auf dem Spielfeld - StartFeld frei - Keine Figur vor Ziel |
|
|
|
"Figuren die nicht am Spielfeld stehen", |
|
|
|
6, |
|
|
|
Arrays.asList(10, -1, -1, -1), |
|
|
|
new ArrayList<>(Arrays.asList(1, 2, 3)) |
|
|
|
), |
|
|
|
Arguments.of( //Würfel 6 - Keine Figur im Ziel - 1 Figur auf dem Spielfeld - StartFeld besetzt - Keine Figur vor Ziel |
|
|
|
"Figur die das Startfeld besetzt", |
|
|
|
6, |
|
|
|
Arrays.asList(10, 0, -1, -1), |
|
|
|
new ArrayList<>(List.of(1)) |
|
|
|
), |
|
|
|
Arguments.of( //Würfel 5 - Keine Figur im Ziel - 1 Figur auf dem Spielfeld - StartFeld besetzt - Figur vor Ziel |
|
|
|
"Figur vor dem Ziel - kann man benutzen", |
|
|
|
5, |
|
|
|
Arrays.asList(10, 37, -1, -1), |
|
|
|
new ArrayList<>(Arrays.asList(0,1)) |
|
|
|
), |
|
|
|
Arguments.of( //Würfel 5 - Keine Figur im Ziel - 1 Figur auf dem Spielfeld - StartFeld besetzt - Figur vor Ziel |
|
|
|
"Figur vor dem Ziel - kann man nicht benutzen", |
|
|
|
5, |
|
|
|
Arrays.asList(10, 39, -1, -1), |
|
|
|
new ArrayList<>(List.of(0)) |
|
|
|
), |
|
|
|
Arguments.of( //Würfel 5 - Figur im Ziel - 1 Figur auf dem Spielfeld - StartFeld besetzt - Figur vor Ziel |
|
|
|
"Nur Figuren die auf ein freies Feld kommen", |
|
|
|
2, |
|
|
|
Arrays.asList(10, 12, -1, -1), |
|
|
|
new ArrayList<>(List.of(1)) |
|
|
|
) |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|