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 array1 = new ArrayList<>(); ArrayList array2 = new ArrayList<>(); ArrayList array3 = new ArrayList<>(); ArrayList expectedArray2 = new ArrayList<>(); ArrayList 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()); } }