1.1 --- a/minesweeper/src/test/java/org/apidesign/demo/minesweeper/MinesModelTest.java Fri Jun 27 15:36:48 2014 +0200
1.2 +++ b/minesweeper/src/test/java/org/apidesign/demo/minesweeper/MinesModelTest.java Thu Jul 17 08:23:25 2014 +0200
1.3 @@ -76,6 +76,33 @@
1.4 assertEquals(m.getState(), MinesModel.GameState.WON, "All mines found. You have won!");
1.5 }
1.6
1.7 + @Test public void gameNotWonWhenTooMuchIsMarked() {
1.8 + Mines m = new Mines();
1.9 + m.init(10, 10, 10);
1.10 +
1.11 + Square additional = null;
1.12 + for (Row row : m.getRows()) {
1.13 + for (Square sq : row.getColumns()) {
1.14 + if (sq.isMine()) {
1.15 + MinesModel.markMine(m);
1.16 + MinesModel.click(m, sq);
1.17 + } else if (additional == null) {
1.18 + MinesModel.markMine(m);
1.19 + MinesModel.click(m, additional = sq);
1.20 + }
1.21 + }
1.22 + }
1.23 +
1.24 + assertEquals(m.getState(), MinesModel.GameState.IN_PROGRESS, "One additional mine is marked!");
1.25 +
1.26 + // remove the mark
1.27 + MinesModel.click(m, additional);
1.28 +
1.29 + assertEquals(m.getState(), MinesModel.GameState.WON, "All mines found. You have won!");
1.30 +
1.31 +
1.32 + }
1.33 +
1.34 @Test public void bombsSet() {
1.35 Mines m = new Mines();
1.36 m.init(10, 10, 0);