|
|
package Game;
import Game.ChessObj.ChessFigure; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*;
class ChessTest {
Chess chess;
@BeforeEach void setUp() { chess = new Chess(); }
@AfterEach void tearDown() { }
@Test void convertInput() { int[] test1 = {0, 0}; int[] test2 = {7, 7}; int[] test3 = {6, 2};
assertNull(chess.convertInput("0g2")); assertNull(chess.convertInput("25")); assertNull(chess.convertInput("bg")); assertNull(chess.convertInput("9b")); assertNull(chess.convertInput("2i"));
assertArrayEquals(chess.convertInput("1a"), test1); assertArrayEquals((chess.convertInput("a1")), test1); assertArrayEquals((chess.convertInput("8h")), test2); assertArrayEquals((chess.convertInput("h8")), test2);
assertArrayEquals((chess.convertInput("3G")), test3); assertArrayEquals((chess.convertInput("G3")), test3); }
@Test void getSidebarFigures() { ArrayList<ChessFigure> array1 = new ArrayList<>(); ArrayList<ChessFigure> array2 = new ArrayList<>(); ArrayList<ChessFigure> array3 = new ArrayList<>(); ArrayList<String> expectedArray2 = new ArrayList<>(); ArrayList<String> expectedArray3 = new ArrayList<>();
array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE)); array2.add(new ChessFigure(ChessFigure.Type.BISHOP, ChessFigure.Team.WHITE)); array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE)); array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE)); array2.add(new ChessFigure(ChessFigure.Type.CASTLE, ChessFigure.Team.WHITE)); array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE));
expectedArray2.add(" o , I , o , o , T ,"); expectedArray2.add(" o ");
array3.add(new ChessFigure(ChessFigure.Type.QUEEN, ChessFigure.Team.BLACK)); array3.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK)); array3.add(new ChessFigure(ChessFigure.Type.KING, ChessFigure.Team.BLACK)); array3.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK));
expectedArray3.add("|Q|,|o|,|K|,|o|");
assertEquals(0, chess.getSidebarFigures(array1, 5).size()); assertEquals(expectedArray2, chess.getSidebarFigures(array2, 5)); assertEquals(expectedArray3, chess.getSidebarFigures(array3, 5)); }
@Test void makeMove() { int countBlackPawns = chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK); int countWhiteBishops = chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.BISHOP, ChessFigure.Team.WHITE); chess.makeMove(chess.convertInput("a2"), chess.convertInput("a3")); chess.makeMove(chess.convertInput("e7"), chess.convertInput("e6")); chess.makeMove(chess.convertInput("f8"), chess.convertInput("a3")); chess.makeMove(chess.convertInput("b2"), chess.convertInput("a3"));
assertEquals(countBlackPawns - 1, chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK)); assertEquals(countWhiteBishops - 1, chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.BISHOP, ChessFigure.Team.WHITE)); }
@Test void update() { //starting team = White
assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
//Emtpy cell
chess.update("d7"); chess.update("g5"); assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
chess.update("7b"); chess.update("6b"); assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
chess.update("e2"); chess.update("e3"); assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
chess.update("6b"); chess.update("5b"); assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
//Defeat enemy
chess.update("f1"); chess.update("b5"); assertEquals(7, chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE)); assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
chess.update("d7"); chess.update("d6"); assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
//Invalid Move
chess.update("5b"); chess.update("a5"); assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
//King defeated
chess.update("5b"); chess.update("e8");
assertTrue(chess.isFinished()); } }
|