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.
|
|
package de.fd.fh;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource;
import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.*;
class GameTest { private Game g = new Game();
@BeforeEach void setupTest() { g.initNewGame(); }
@Test void newGameInitializationCorrectField() { assertEquals(Figure.fieldLength * Figure.fieldLength, g.mField.length); }
// prüft, ob Figuren nach Initialisierung nur an vorgesehenden Positionen stehen
@Test void newGameInitializationFigurePositions() { for (int i = 0; i < Figure.fieldLength; i++) // row
{ for (int j = 0; j < Figure.fieldLength; j++) // col
{ if (i == Game.whiteRowOther || i == Game.whiteRowFarmer || i == Game.blackRowOther || i == Game.blackRowFarmer) { assertNotEquals(null, g.mField[i * Figure.fieldLength + j]); } else { assertEquals(null, g.mField[i * Figure.fieldLength + j]); } } } }
@Test void newGameInitializationFigurePositionsFarmer() { // weiße Bauern
for (int j = 0; j < Figure.fieldLength; j++) // col
{ assertEquals(new FigureFarmer(FigureFarmer.Color.White).getClass(), g.mField[Game.whiteRowFarmer * Figure.fieldLength + j].getClass()); assertEquals(new FigureFarmer(FigureFarmer.Color.White), g.mField[Game.whiteRowFarmer * Figure.fieldLength + j]); }
// schwarze Bauern
for (int j = 0; j < Figure.fieldLength; j++) // col
{ assertEquals(new FigureFarmer(FigureFarmer.Color.Black).getClass(), g.mField[Game.blackRowFarmer * Figure.fieldLength + j].getClass()); assertEquals(new FigureFarmer(FigureFarmer.Color.Black), g.mField[Game.blackRowFarmer * Figure.fieldLength + j]); } }
@ParameterizedTest // row, col
@CsvSource({ "0, 0", // schwarzer Turm a8
"0, 7", // schwarzer Turm h8
"7, 0", // weißer Turm a1
"7, 7" // weißer Turm h1
}) void newGameInitializationFigurePositionsRooks(int row, int col) { // schwarzer Turm a8
assertEquals(new FigureRook().getClass(), g.mField[Figure.fieldLength * row + col].getClass()); }
@Test void moveFarmerWhite() // weißer Bauer ganz links um ein Feld noch vorne bewegen
{ int src = Game.whiteRowFarmer * Figure.fieldLength + 0; int dst = (Game.whiteRowFarmer - 1) * Figure.fieldLength + 0;
// zu bewegende Figur
Figure f = g.mField[src];
// Ziel sollte leer sein
assertNull(g.mField[dst]);
// Figur bewegen
assertTrue(g.moveFigure(src, dst));
// Figur sollte nun verschoben sein
assertNull(g.mField[src]); assertSame(f, g.mField[dst]); } }
|