chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 25 Jul 2013 21:19:14 +0200
branchchess
changeset 29 9fb64f6528b5
parent 26 b675be28fc49
child 30 a46846115b83
permissions -rw-r--r--
Cannot capture own piece
jtulach@26
     1
/**
jtulach@26
     2
 * The MIT License (MIT)
jtulach@26
     3
 *
jtulach@26
     4
 * Copyright (C) 2013 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
jtulach@26
     5
 *
jtulach@26
     6
 * Permission is hereby granted, free of charge, to any person obtaining a copy
jtulach@26
     7
 * of this software and associated documentation files (the "Software"), to deal
jtulach@26
     8
 * in the Software without restriction, including without limitation the rights
jtulach@26
     9
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
jtulach@26
    10
 * copies of the Software, and to permit persons to whom the Software is
jtulach@26
    11
 * furnished to do so, subject to the following conditions:
jtulach@26
    12
 *
jtulach@26
    13
 * The above copyright notice and this permission notice shall be included in
jtulach@26
    14
 * all copies or substantial portions of the Software.
jtulach@26
    15
 *
jtulach@26
    16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
jtulach@26
    17
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
jtulach@26
    18
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
jtulach@26
    19
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
jtulach@26
    20
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
jtulach@26
    21
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
jtulach@26
    22
 * THE SOFTWARE.
jtulach@26
    23
 */
jtulach@26
    24
package org.apidesign.html.demo.chess;
jtulach@26
    25
jtulach@26
    26
import static org.testng.Assert.*;
jtulach@26
    27
import org.testng.annotations.Test;
jtulach@26
    28
jtulach@26
    29
/**
jtulach@26
    30
 *
jtulach@26
    31
 * @author Jaroslav Tulach <jtulach@netbeans.org>
jtulach@26
    32
 */
jtulach@26
    33
public class BoardModelTest {
jtulach@26
    34
    
jtulach@26
    35
    public BoardModelTest() {
jtulach@26
    36
    }
jtulach@26
    37
jtulach@26
    38
jtulach@26
    39
    @Test public void e2e4() {
jtulach@26
    40
        Board b = BoardModel.createBoard();
jtulach@26
    41
        Square e2 = BoardModel.findSquare(b, 'E', 2);
jtulach@26
    42
        assertNotNull(e2);
jtulach@26
    43
        BoardModel.selected(b, e2);
jtulach@26
    44
        assertEquals(BoardModel.findSelectedSquare(b), e2, "E2 is selected");
jtulach@26
    45
        
jtulach@26
    46
        Square e4 = BoardModel.findSquare(b, 'E', 4);
jtulach@26
    47
        assertNotNull(e4);
jtulach@26
    48
        
jtulach@26
    49
        BoardModel.selected(b, e4);
jtulach@26
    50
        
jtulach@26
    51
        assertNull(e2.getPiece(), "No pawn at e2");
jtulach@26
    52
        assertEquals(e4.getPiece(), BoardModel.PieceType.PAWN, "Pawn moved successfully");
jtulach@26
    53
        assertNull(BoardModel.findSelectedSquare(b), "No square selected");
jtulach@26
    54
        
jtulach@26
    55
    }
jtulach@26
    56
    
jtulach@26
    57
    @Test public void cantSelectEmptySquare() {
jtulach@26
    58
        Board b = BoardModel.createBoard();
jtulach@26
    59
        Square e3 = BoardModel.findSquare(b, 'E', 3);
jtulach@26
    60
        assertNotNull(e3);
jtulach@26
    61
        BoardModel.selected(b, e3);
jtulach@26
    62
        assertNull(BoardModel.findSelectedSquare(b), "No square is selected");
jtulach@26
    63
    }
jaroslav@29
    64
jaroslav@29
    65
    @Test public void cantTakeOwnPiece() {
jaroslav@29
    66
        Board b = BoardModel.createBoard();
jaroslav@29
    67
        Square e1 = BoardModel.findSquare(b, 'E', 1);
jaroslav@29
    68
        assertNotNull(e1);
jaroslav@29
    69
        BoardModel.selected(b, e1);
jaroslav@29
    70
        assertEquals(BoardModel.findSelectedSquare(b), e1, "E1 is selected");
jaroslav@29
    71
        
jaroslav@29
    72
        Square e2 = BoardModel.findSquare(b, 'E', 2);
jaroslav@29
    73
        assertNotNull(e2);
jaroslav@29
    74
        
jaroslav@29
    75
        BoardModel.selected(b, e2);
jaroslav@29
    76
        
jaroslav@29
    77
        assertNotNull(e1.getPiece(), "King remains at e1");
jaroslav@29
    78
        assertEquals(e2.getPiece(), BoardModel.PieceType.PAWN, "Pawn remains");
jaroslav@29
    79
        assertEquals(BoardModel.findSelectedSquare(b), e2, "e2 now selected");
jaroslav@29
    80
        
jaroslav@29
    81
    }
jtulach@26
    82
    
jtulach@26
    83
}