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.

106 lines
3.1 KiB

  1. package de.fd.fh;
  2. import org.junit.jupiter.api.BeforeAll;
  3. import org.junit.jupiter.api.BeforeEach;
  4. import org.junit.jupiter.api.Test;
  5. import static org.hamcrest.MatcherAssert.assertThat;
  6. import static org.junit.jupiter.api.Assertions.*;
  7. class GameTest
  8. {
  9. private Game g = new Game();
  10. @BeforeEach
  11. void setupTest()
  12. {
  13. g.initNewGame();
  14. }
  15. @Test
  16. void newGameInitializationCorrectField()
  17. {
  18. assertEquals(Figure.fieldLength * Figure.fieldLength, g.mField.length);
  19. }
  20. // prüft, ob Figuren nach Initialisierung nur an vorgesehenden Positionen stehen
  21. @Test
  22. void newGameInitializationFigurePositions()
  23. {
  24. for (int i = 0; i < Figure.fieldLength; i++) // row
  25. {
  26. for (int j = 0; j < Figure.fieldLength; j++) // col
  27. {
  28. if (i == Game.whiteRowOther
  29. || i == Game.whiteRowFarmer
  30. || i == Game.blackRowOther
  31. || i == Game.blackRowFarmer)
  32. {
  33. assertNotEquals(null, g.mField[i * Figure.fieldLength + j]);
  34. }
  35. else
  36. {
  37. assertEquals(null, g.mField[i * Figure.fieldLength + j]);
  38. }
  39. }
  40. }
  41. }
  42. @Test
  43. void newGameInitializationFigurePositionsFarmer()
  44. {
  45. // weiße Bauern
  46. for (int j = 0; j < Figure.fieldLength; j++) // col
  47. {
  48. assertEquals(new FigureFarmer(FigureFarmer.Color.White).getClass(),
  49. g.mField[Game.whiteRowFarmer * Figure.fieldLength + j].getClass());
  50. assertEquals(new FigureFarmer(FigureFarmer.Color.White),
  51. g.mField[Game.whiteRowFarmer * Figure.fieldLength + j]);
  52. }
  53. // schwarze Bauern
  54. for (int j = 0; j < Figure.fieldLength; j++) // col
  55. {
  56. assertEquals(new FigureFarmer(FigureFarmer.Color.Black).getClass(),
  57. g.mField[Game.blackRowFarmer * Figure.fieldLength + j].getClass());
  58. assertEquals(new FigureFarmer(FigureFarmer.Color.Black),
  59. g.mField[Game.blackRowFarmer * Figure.fieldLength + j]);
  60. }
  61. }
  62. @Test
  63. void newGameInitializationFigurePositionsRooks()
  64. {
  65. // schwarzer Turm a8
  66. assertEquals(new FigureRook().getClass(),
  67. g.mField[Figure.fieldLength * 0 + 0].getClass());
  68. }
  69. @Test
  70. void newGameInitializationFigurePositionsRook2()
  71. {
  72. // schwarzer Turm h8
  73. assertEquals(new FigureRook().getClass(),
  74. g.mField[Figure.fieldLength * 0 + 7].getClass());
  75. }
  76. @Test
  77. void moveFarmerWhite() // weißer Bauer ganz links um ein Feld noch vorne bewegen
  78. {
  79. int src = Game.whiteRowFarmer * Figure.fieldLength + 0;
  80. int dst = (Game.whiteRowFarmer - 1) * Figure.fieldLength + 0;
  81. // zu bewegende Figur
  82. Figure f = g.mField[src];
  83. // Ziel sollte leer sein
  84. assertNull(g.mField[dst]);
  85. // Figur bewegen
  86. assertTrue(g.moveFigure(src, dst));
  87. // Figur sollte nun verschoben sein
  88. assertNull(g.mField[src]);
  89. assertSame(f, g.mField[dst]);
  90. }
  91. }