quoridor/src/test/java/cz/xelfi/quoridor/SerializeTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 14 Sep 2010 08:56:13 +0200
changeset 264 d60370059c3c
parent 179 c5fbddc4c590
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 import java.io.StringWriter;
    23 
    24 /** Basic tests in simple configuration.
    25  *
    26  * @author Jaroslav Tulach
    27  */
    28 public class SerializeTest extends BoardCase {
    29     public SerializeTest (String testName) {
    30         super (testName);
    31     }
    32 
    33     @Override
    34     protected Board move(Board b, int player, Direction... where) throws IllegalPositionException {
    35         try {
    36             Board read = reread(b);
    37             return read.move(read.getPlayers().get(player), where);
    38         } catch (IOException ex) {
    39             throw new IllegalStateException(ex);
    40         }
    41     }
    42     protected Board fence(Board b, int player, char x, int y, Fence.Orientation orie)
    43     throws IllegalPositionException {
    44         try {
    45             Board read = reread(b);
    46             return read.fence(read.getPlayers().get(player), x, y, orie);
    47         } catch (IOException ex) {
    48             throw new IllegalStateException(ex);
    49         }
    50     }
    51 
    52     @Override
    53     protected Board apply(Board b, Move move) throws IllegalPositionException {
    54         try {
    55             Board read = reread(b);
    56             return read.apply(move);
    57         } catch (IOException ex) {
    58             throw new IllegalStateException(ex);
    59         }
    60     }
    61 
    62     private Board reread(Board b) throws IOException, IllegalPositionException {
    63         StringWriter w = new StringWriter();
    64         b.write(w);
    65         w.close();
    66         return picture2board(w.toString());
    67         //return Board.valueOf(w.toString());
    68     }
    69 
    70 }