quoridor/src/test/java/cz/xelfi/quoridor/SerializeCodeTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 14 Sep 2010 08:56:13 +0200
changeset 264 d60370059c3c
parent 181 e3fb438103e0
permissions -rw-r--r--
Changing headers to GPLv3
     1 /*
     2  * Quoridor server and related libraries
     3  * Copyright (C) 2009-2010 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, either version 3 of the License.
     8  *
     9  * This program is distributed in the hope that it will be useful,
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  * GNU General Public License for more details.
    13  *
    14  * You should have received a copy of the GNU General Public License
    15  * along with this program. Look for COPYING file in the top folder.
    16  * If not, see http://www.gnu.org/licenses/.
    17  */
    18 package cz.xelfi.quoridor;
    19 
    20 import cz.xelfi.quoridor.Player.Direction;
    21 import java.io.IOException;
    22 
    23 /** Basic tests in simple configuration.
    24  *
    25  * @author Jaroslav Tulach
    26  */
    27 public class SerializeCodeTest extends BoardCase {
    28     public SerializeCodeTest (String testName) {
    29         super (testName);
    30     }
    31 
    32     @Override
    33     protected Board move(Board b, int player, Direction... where) throws IllegalPositionException {
    34         try {
    35             Board read = reread(b);
    36             return read.move(read.getPlayers().get(player), where);
    37         } catch (IOException ex) {
    38             throw new IllegalStateException(ex);
    39         }
    40     }
    41     protected Board fence(Board b, int player, char x, int y, Fence.Orientation orie)
    42     throws IllegalPositionException {
    43         try {
    44             Board read = reread(b);
    45             return read.fence(read.getPlayers().get(player), x, y, orie);
    46         } catch (IOException ex) {
    47             throw new IllegalStateException(ex);
    48         }
    49     }
    50 
    51     @Override
    52     protected Board apply(Board b, Move move) throws IllegalPositionException {
    53         try {
    54             Board read = reread(b);
    55             return read.apply(move);
    56         } catch (IOException ex) {
    57             throw new IllegalStateException(ex);
    58         }
    59     }
    60 
    61     private Board reread(Board b) throws IOException, IllegalPositionException {
    62         return Board.valueOf(b.getCode());
    63     }
    64 
    65 }