You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.4 KiB

import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
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.stream.Stream;
public class GameTest {
private Game g;
private Player p1;
private Player p2;
@BeforeEach
void setup() {
g = new Game();
p1 = new Player("Rot", 1, 40, 43);
p2 = new Player("Blau",10, 44, 47);
}
@ParameterizedTest
@MethodSource("checkDiceTestData")
void checkDiceTest(String testname, Collection<Integer> positions, int dice, int c, boolean expectedResult) {
Iterator<Figure> it = p1.figures.iterator();
Iterator<Integer> it2 = positions.iterator();
while(it.hasNext()) {
it.next().setPosition(it2.next());
}
boolean calculatedResult = g.checkDice(dice, p1, c);
assertThat(calculatedResult).describedAs(testname).isEqualTo(expectedResult);
}
static Stream<Arguments> checkDiceTestData () {
return Stream.of(
Arguments.of("No figures on Field - d: 1 - c: 1",
Arrays.asList(-1, -1, -1, -1),
1,
1,
true
),
Arguments.of("No figures on Field - d: 1 - c: 2",
Arrays.asList(-1, -1, -1, -1),
1,
2,
true
),
Arguments.of("No figures on Field - d: 1 - c: 3",
Arrays.asList(-1, -1, -1, -1),
1,
3,
true
),
Arguments.of("No figures on Field - d: 1 - c: 4",
Arrays.asList(-1, -1, -1, -1),
1,
4,
false
),
Arguments.of("Figures on Field - d: 1 - c: 1",
Arrays.asList(10, -1, 2, -1),
1,
1,
false
),
Arguments.of("Figures on Field - d: 6 - c: 1",
Arrays.asList(10, -1, 2, -1),
6,
1,
true
)
);
}
@Test
void checkFieldClearTestFieldNotTaken() {
int expectedResult = 0;
int calculatedResult = g.checkFieldClear(1, p1, g);
assertThat(calculatedResult).describedAs("Check Field Clear").isEqualTo(expectedResult);
}
@Test
void checkFieldClearTestFieldTakenByOtherPlayer() {
int expectedResult = 1;
g.players.get(1).figures.get(0).setPosition(1);
int calculatedResult = g.checkFieldClear(1, g.players.get(0), 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);
assertThat(calculatedResult).describedAs("Check Field Clear").isEqualTo(expectedResult);
}
}