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 }