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.

89 lines
2.8 KiB

package de.fd.fh;
import org.junit.jupiter.api.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.*;
class GameTest
{
@Test
void newGameInitializationCorrectField()
{
Game g = new Game();
g.initNewGame();
assertEquals(Figure.fieldLength * Figure.fieldLength, g.mField.length);
}
// prüft, ob Figuren nach Initialisierung nur an vorgesehenden Positionen stehen
@Test
void newGameInitializationFigurePositions()
{
Game g = new Game();
g.initNewGame();
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()
{
Game g = new Game();
g.initNewGame();
// 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]);
}
}
@Test
void moveFarmerWhite() // weißer Bauer ganz links um ein Feld noch vorne bewegen
{
Game g = new Game();
g.initNewGame();
// zu bewegende Figur
Figure f = g.mField[Game.whiteRowFarmer * 8 + 0];
// Ziel sollte leer sein
assertNull(g.mField[(Game.whiteRowFarmer - 1) * 8 + 0]);
// Figur bewegen
assertTrue(g.moveFigure(Game.whiteRowFarmer * 8 + 0, (Game.whiteRowFarmer - 1) * 8 + 0));
// Figur sollte nun verschoben sein
assertNull(g.mField[Game.whiteRowFarmer * 8 + 0]);
assertSame(f, g.mField[(Game.whiteRowFarmer - 1) * 8 + 0]);
}
}