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.

131 lines
4.8 KiB

  1. package Game;
  2. import Game.ChessObj.ChessFigure;
  3. import org.junit.jupiter.api.AfterEach;
  4. import org.junit.jupiter.api.BeforeEach;
  5. import org.junit.jupiter.api.Test;
  6. import java.util.ArrayList;
  7. import static org.junit.jupiter.api.Assertions.*;
  8. class ChessTest {
  9. Chess chess;
  10. @BeforeEach
  11. void setUp() {
  12. chess = new Chess();
  13. }
  14. @AfterEach
  15. void tearDown() {
  16. }
  17. @Test
  18. void convertInput() {
  19. int[] test1 = {0, 0};
  20. int[] test2 = {7, 7};
  21. int[] test3 = {6, 2};
  22. assertNull(chess.convertInput("0g2"));
  23. assertNull(chess.convertInput("25"));
  24. assertNull(chess.convertInput("bg"));
  25. assertNull(chess.convertInput("9b"));
  26. assertNull(chess.convertInput("2i"));
  27. assertArrayEquals(chess.convertInput("1a"), test1);
  28. assertArrayEquals((chess.convertInput("a1")), test1);
  29. assertArrayEquals((chess.convertInput("8h")), test2);
  30. assertArrayEquals((chess.convertInput("h8")), test2);
  31. assertArrayEquals((chess.convertInput("3G")), test3);
  32. assertArrayEquals((chess.convertInput("G3")), test3);
  33. }
  34. @Test
  35. void getSidebarFigures() {
  36. ArrayList<ChessFigure> array1 = new ArrayList<>();
  37. ArrayList<ChessFigure> array2 = new ArrayList<>();
  38. ArrayList<ChessFigure> array3 = new ArrayList<>();
  39. ArrayList<String> expectedArray2 = new ArrayList<>();
  40. ArrayList<String> expectedArray3 = new ArrayList<>();
  41. array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE));
  42. array2.add(new ChessFigure(ChessFigure.Type.BISHOP, ChessFigure.Team.WHITE));
  43. array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE));
  44. array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE));
  45. array2.add(new ChessFigure(ChessFigure.Type.CASTLE, ChessFigure.Team.WHITE));
  46. array2.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE));
  47. expectedArray2.add(" o , I , o , o , T ,");
  48. expectedArray2.add(" o ");
  49. array3.add(new ChessFigure(ChessFigure.Type.QUEEN, ChessFigure.Team.BLACK));
  50. array3.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK));
  51. array3.add(new ChessFigure(ChessFigure.Type.KING, ChessFigure.Team.BLACK));
  52. array3.add(new ChessFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK));
  53. expectedArray3.add("|Q|,|o|,|K|,|o|");
  54. assertEquals(0, chess.getSidebarFigures(array1, 5).size());
  55. assertEquals(expectedArray2, chess.getSidebarFigures(array2, 5));
  56. assertEquals(expectedArray3, chess.getSidebarFigures(array3, 5));
  57. }
  58. @Test
  59. void makeMove() {
  60. int countBlackPawns = chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK);
  61. int countWhiteBishops = chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.BISHOP, ChessFigure.Team.WHITE);
  62. chess.makeMove(chess.convertInput("a2"), chess.convertInput("a3"));
  63. chess.makeMove(chess.convertInput("e7"), chess.convertInput("e6"));
  64. chess.makeMove(chess.convertInput("f8"), chess.convertInput("a3"));
  65. chess.makeMove(chess.convertInput("b2"), chess.convertInput("a3"));
  66. assertEquals(countBlackPawns - 1, chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.PAWN, ChessFigure.Team.BLACK));
  67. assertEquals(countWhiteBishops - 1, chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.BISHOP, ChessFigure.Team.WHITE));
  68. }
  69. @Test
  70. void update() {
  71. //starting team = White
  72. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
  73. //Emtpy cell
  74. chess.update("d7");
  75. chess.update("g5");
  76. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
  77. chess.update("7b");
  78. chess.update("6b");
  79. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
  80. chess.update("e2");
  81. chess.update("e3");
  82. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
  83. chess.update("6b");
  84. chess.update("5b");
  85. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
  86. //Defeat enemy
  87. chess.update("f1");
  88. chess.update("b5");
  89. assertEquals(7, chess.getChessBoard().scanForOccurringFigure(ChessFigure.Type.PAWN, ChessFigure.Team.WHITE));
  90. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.WHITE);
  91. chess.update("d7");
  92. chess.update("d6");
  93. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
  94. //Invalid Move
  95. chess.update("5b");
  96. chess.update("a5");
  97. assertEquals(chess.getCurrentTeam(), ChessFigure.Team.BLACK);
  98. //King defeated
  99. chess.update("5b");
  100. chess.update("e8");
  101. assertTrue(chess.isFinished());
  102. }
  103. }