minesweeper/src/test/java/org/apidesign/demo/minesweeper/MinesModelTest.java
changeset 174 a57b2414b855
parent 165 276db4d4d795
     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);