Cannot capture own piece chess
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 25 Jul 2013 21:19:14 +0200
branchchess
changeset 299fb64f6528b5
parent 27 a3e3bb361991
child 30 a46846115b83
Cannot capture own piece
chess/src/main/java/org/apidesign/html/demo/chess/BoardModel.java
chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java
     1.1 --- a/chess/src/main/java/org/apidesign/html/demo/chess/BoardModel.java	Thu Jul 25 21:04:25 2013 +0200
     1.2 +++ b/chess/src/main/java/org/apidesign/html/demo/chess/BoardModel.java	Thu Jul 25 21:19:14 2013 +0200
     1.3 @@ -40,11 +40,16 @@
     1.4                  data.setSelected(true);
     1.5              }
     1.6          } else {
     1.7 +            previoslySelected.setSelected(false);
     1.8 +            if (data.getPiece() != null && data.getPieceColor() == previoslySelected.getPieceColor()) {
     1.9 +                previoslySelected.setSelected(false);
    1.10 +                data.setSelected(true);
    1.11 +                return;
    1.12 +            }
    1.13              data.setPieceColor(previoslySelected.getPieceColor());
    1.14              data.setPiece(previoslySelected.getPiece());
    1.15              previoslySelected.setPiece(null);
    1.16              previoslySelected.setPieceColor(null);
    1.17 -            previoslySelected.setSelected(false);
    1.18          }
    1.19      }
    1.20      
     2.1 --- a/chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java	Thu Jul 25 21:04:25 2013 +0200
     2.2 +++ b/chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java	Thu Jul 25 21:19:14 2013 +0200
     2.3 @@ -61,5 +61,23 @@
     2.4          BoardModel.selected(b, e3);
     2.5          assertNull(BoardModel.findSelectedSquare(b), "No square is selected");
     2.6      }
     2.7 +
     2.8 +    @Test public void cantTakeOwnPiece() {
     2.9 +        Board b = BoardModel.createBoard();
    2.10 +        Square e1 = BoardModel.findSquare(b, 'E', 1);
    2.11 +        assertNotNull(e1);
    2.12 +        BoardModel.selected(b, e1);
    2.13 +        assertEquals(BoardModel.findSelectedSquare(b), e1, "E1 is selected");
    2.14 +        
    2.15 +        Square e2 = BoardModel.findSquare(b, 'E', 2);
    2.16 +        assertNotNull(e2);
    2.17 +        
    2.18 +        BoardModel.selected(b, e2);
    2.19 +        
    2.20 +        assertNotNull(e1.getPiece(), "King remains at e1");
    2.21 +        assertEquals(e2.getPiece(), BoardModel.PieceType.PAWN, "Pawn remains");
    2.22 +        assertEquals(BoardModel.findSelectedSquare(b), e2, "e2 now selected");
    2.23 +        
    2.24 +    }
    2.25      
    2.26  }