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]); } }