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.
132 lines
4.8 KiB
132 lines
4.8 KiB
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());
|
|
}
|
|
}
|