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.

88 lines
2.8 KiB

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