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.
107 lines
3.1 KiB
107 lines
3.1 KiB
package de.fd.fh;
|
|
|
|
import org.junit.jupiter.api.BeforeAll;
|
|
import org.junit.jupiter.api.BeforeEach;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
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]);
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
void newGameInitializationFigurePositionsRooks()
|
|
{
|
|
// schwarzer Turm a8
|
|
assertEquals(new FigureRook().getClass(),
|
|
g.mField[Figure.fieldLength * 0 + 0].getClass());
|
|
}
|
|
|
|
@Test
|
|
void newGameInitializationFigurePositionsRook2()
|
|
{
|
|
// schwarzer Turm h8
|
|
assertEquals(new FigureRook().getClass(),
|
|
g.mField[Figure.fieldLength * 0 + 7].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]);
|
|
}
|
|
}
|