chess/src/test/java/org/apidesign/html/demo/chess/BoardModelTest.java
author Jaroslav Tulach <jtulach@netbeans.org>
Thu, 25 Jul 2013 17:14:55 +0200
branchchess
changeset 26 b675be28fc49
child 29 9fb64f6528b5
permissions -rw-r--r--
Can move pieces and shows how to unit test the model
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
    }
jtulach@26
    64
    
jtulach@26
    65
}