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.

98 lines
2.9 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 moveFarmerWhite() // weißer Bauer ganz links um ein Feld noch vorne bewegen
  71. {
  72. int src = Game.whiteRowFarmer * Figure.fieldLength + 0;
  73. int dst = (Game.whiteRowFarmer - 1) * Figure.fieldLength + 0;
  74. // zu bewegende Figur
  75. Figure f = g.mField[src];
  76. // Ziel sollte leer sein
  77. assertNull(g.mField[dst]);
  78. // Figur bewegen
  79. assertTrue(g.moveFigure(src, dst));
  80. // Figur sollte nun verschoben sein
  81. assertNull(g.mField[src]);
  82. assertSame(f, g.mField[dst]);
  83. }
  84. }