|
|
package de.fd.fh;
import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.*;
class FigureFarmerTest { Figure[] field = new Figure[Figure.fieldLength * Figure.fieldLength];
@ParameterizedTest // color (0 white/1 black), row (src), col (src), row (dst), col (dst)
@CsvSource({ "0, 6, 0, 5, 0", // white: a2 -> a3
"0, 4, 4, 3, 4", // white: e4 -> e5
"1, 1, 0, 2, 0" // black: a1 -> a2
}) void farmerValidDestination(int color, int srcRow, int srcCol, int dstRow, int dstCol) { int src = Figure.fieldLength * srcRow + srcCol; int dst = Figure.fieldLength * dstRow + dstCol;
Figure f = null;
if (color == 0) { f = new FigureFarmer(FigureFarmer.Color.White); } else if (color == 1) { f = new FigureFarmer(FigureFarmer.Color.Black); }
assertTrue(f.moveAllowed(src, dst, field)); }
@ParameterizedTest // color (0 white/1 black), row (src), col (src), row (dst), col (dst)
@CsvSource({ "0, 6, 0, 7, 0", // white: a2 -> a1
"0, 4, 4, 5, 4", // white: e4 -> e3
"1, 1, 0, 0, 0" // black: a7 -> a8
}) void farmerInvalidDestination(int color, int srcRow, int srcCol, int dstRow, int dstCol) // statt nach "oben" wird nach "unten" gegangen
{ int src = Figure.fieldLength * srcRow + srcCol; int dst = Figure.fieldLength * dstRow + dstCol;
Figure f = null;
if (color == 0) { f = new FigureFarmer(FigureFarmer.Color.White); } else if (color == 1) { f = new FigureFarmer(FigureFarmer.Color.Black); }
assertFalse(f.moveAllowed(src, dst, field)); }
@Test void whiteFarmerInvalidDestinationUp() // mehr als 1 Schritt nach "oben"
{ int src = Figure.fieldLength * 6 + 0; int dst = Figure.fieldLength * 4 + 0;
Figure f = new FigureFarmer(FigureFarmer.Color.White); assertFalse(f.moveAllowed(src, dst, field)); } }
|