quoridor/src/test/java/cz/xelfi/quoridor/SerializeTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 30 Aug 2009 14:37:47 +0200
changeset 48 69e897fe8140
parent 15 8c8eafa8b3ae
child 178 4b78d4f028b3
permissions -rw-r--r--
Spliting Game into GameId and Game with full info about the state of the game
     1 /*
     2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
     3  *
     4  * The contents of this file are subject to the terms of either the GNU
     5  * General Public License Version 2 only ("GPL") or the Common
     6  * Development and Distribution License("CDDL") (collectively, the
     7  * "License"). You may not use this file except in compliance with the
     8  * License. You can obtain a copy of the License at
     9  * http://www.netbeans.org/cddl-gplv2.html
    10  * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
    11  * specific language governing permissions and limitations under the
    12  * License.  When distributing the software, include this License Header
    13  * Notice in each file and include the License file at
    14  * nbbuild/licenses/CDDL-GPL-2-CP.  Sun designates this
    15  * particular file as subject to the "Classpath" exception as provided
    16  * by Sun in the GPL Version 2 section of the License file that
    17  * accompanied this code. If applicable, add the following below the
    18  * License Header, with the fields enclosed by brackets [] replaced by
    19  * your own identifying information:
    20  * "Portions Copyrighted [year] [name of copyright owner]"
    21  *
    22  * Contributor(s):
    23  *
    24  * Portions Copyrighted 2009 Jaroslav Tulach
    25  */
    26 package cz.xelfi.quoridor;
    27 
    28 import cz.xelfi.quoridor.Player.Direction;
    29 import java.io.IOException;
    30 import java.io.StringReader;
    31 import java.io.StringWriter;
    32 
    33 /** Basic tests in simple configuration.
    34  *
    35  * @author Jaroslav Tulach
    36  */
    37 public class SerializeTest extends BoardCase {
    38     public SerializeTest (String testName) {
    39         super (testName);
    40     }
    41 
    42     @Override
    43     protected Board move(Board b, int player, Direction... where) throws IllegalPositionException {
    44         try {
    45             Board read = reread(b);
    46             return read.move(read.getPlayers().get(player), where);
    47         } catch (IOException ex) {
    48             throw new IllegalStateException(ex);
    49         }
    50     }
    51     protected Board fence(Board b, int player, char x, int y, Fence.Orientation orie)
    52     throws IllegalPositionException {
    53         try {
    54             Board read = reread(b);
    55             return read.fence(read.getPlayers().get(player), x, y, orie);
    56         } catch (IOException ex) {
    57             throw new IllegalStateException(ex);
    58         }
    59     }
    60 
    61     @Override
    62     protected Board apply(Board b, Move move) throws IllegalPositionException {
    63         try {
    64             Board read = reread(b);
    65             return read.apply(move);
    66         } catch (IOException ex) {
    67             throw new IllegalStateException(ex);
    68         }
    69     }
    70 
    71     private Board reread(Board b) throws IOException, IllegalPositionException {
    72         StringWriter w = new StringWriter();
    73         b.write(w);
    74         w.close();
    75         return Board.valueOf(w.toString());
    76     }
    77 
    78 }