2 * The MIT License (MIT)
4 * Copyright (C) 2013 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
24 package org.apidesign.html.demo.chess;
26 import org.apidesign.html.demo.chess.BoardModel.ColorType;
27 import static org.testng.Assert.*;
28 import org.testng.annotations.Test;
32 * @author Jaroslav Tulach <jtulach@netbeans.org>
34 public class BoardModelTest {
36 public BoardModelTest() {
40 @Test public void e2e4e7e6() {
41 Board b = BoardModel.createBoard();
42 assertEquals(b.getTurn(), ColorType.WHITE);
44 Square e2 = BoardModel.findSquare(b, 'E', 2);
46 BoardModel.selected(b, e2);
47 assertEquals(BoardModel.findSelectedSquare(b), e2, "E2 is selected");
49 Square e4 = BoardModel.findSquare(b, 'E', 4);
52 BoardModel.selected(b, e4);
54 assertNull(e2.getPiece(), "No pawn at e2");
55 assertEquals(e4.getPiece(), BoardModel.PieceType.PAWN, "Pawn moved successfully");
56 assertNull(BoardModel.findSelectedSquare(b), "No square selected");
58 BoardModel.selected(b, e4);
59 assertNull(BoardModel.findSelectedSquare(b), "No square selected, it is blacks turn");
61 assertTrue(b.isBlackTurn(), "black's turn");
64 Square e7 = BoardModel.findSquare(b, 'E', 7);
65 BoardModel.selected(b, e7);
66 assertEquals(BoardModel.findSelectedSquare(b), e7);
68 BoardModel.selected(b, BoardModel.findSquare(b, 'E', 6));
69 assertNull(e7.getPiece(), "Piece has been moved");
72 @Test public void cantSelectEmptySquare() {
73 Board b = BoardModel.createBoard();
74 Square e3 = BoardModel.findSquare(b, 'E', 3);
76 BoardModel.selected(b, e3);
77 assertNull(BoardModel.findSelectedSquare(b), "No square is selected");
80 @Test public void cantTakeOwnPiece() {
81 Board b = BoardModel.createBoard();
82 Square e1 = BoardModel.findSquare(b, 'E', 1);
84 BoardModel.selected(b, e1);
85 assertEquals(BoardModel.findSelectedSquare(b), e1, "E1 is selected");
87 Square e2 = BoardModel.findSquare(b, 'E', 2);
90 BoardModel.selected(b, e2);
92 assertNotNull(e1.getPiece(), "King remains at e1");
93 assertEquals(e2.getPiece(), BoardModel.PieceType.PAWN, "Pawn remains");
94 assertEquals(BoardModel.findSelectedSquare(b), e2, "e2 now selected");