chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java
branchchess
changeset 34 1ebd52ae8ccb
parent 30 a46846115b83
child 35 7ae0125d57b2
     1.1 --- a/chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java	Fri Jul 26 09:28:49 2013 +0200
     1.2 +++ b/chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java	Fri Jul 26 17:14:25 2013 +0200
     1.3 @@ -24,6 +24,7 @@
     1.4  package org.apidesign.html.demo.chess;
     1.5  
     1.6  import org.apidesign.html.demo.chess.BoardModel.ColorType;
     1.7 +import org.apidesign.html.demo.chess.BoardModel.PieceType;
     1.8  import static org.testng.Assert.*;
     1.9  import org.testng.annotations.Test;
    1.10  
    1.11 @@ -95,4 +96,28 @@
    1.12          
    1.13      }
    1.14      
    1.15 +    @Test public void knightMustMoveToF3() {
    1.16 +        Board b = BoardModel.createBoard();
    1.17 +        Square g1 = BoardModel.findSquare(b, 'G', 1);
    1.18 +        BoardModel.selected(b, g1);
    1.19 +        
    1.20 +        Square f3 = BoardModel.findSquare(b, 'F', 3);
    1.21 +        assertTrue(f3.isAccessible(), "This is a field where knight can move");
    1.22 +
    1.23 +        Square g3 = BoardModel.findSquare(b, 'G', 3);
    1.24 +        assertFalse(g3.isAccessible(), "Not a place for knight");
    1.25 +
    1.26 +        Square e2 = BoardModel.findSquare(b, 'E', 2);
    1.27 +        assertFalse(e2.isAccessible(), "Not a place either, occupied");
    1.28 +
    1.29 +        BoardModel.selected(b, g3);
    1.30 +        
    1.31 +        assertNull(g3.getPiece(), "No figure was moved");
    1.32 +        assertTrue(g1.isSelected(), "Original square still selected");
    1.33 +        
    1.34 +        BoardModel.selected(b, f3);
    1.35 +        
    1.36 +        assertEquals(f3.getPiece(), PieceType.KNIGHT, "Moved");
    1.37 +        assertFalse(g3.isSelected(), "No longer selected");
    1.38 +    }
    1.39  }