quoridor/src/test/java/cz/xelfi/quoridor/SerializeTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 07 Jan 2010 22:51:17 +0100
branchstatistics-and-elo
changeset 179 c5fbddc4c590
parent 178 4b78d4f028b3
child 264 d60370059c3c
permissions -rw-r--r--
Renaming Board.board2HashCode to getCode()
     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.StringWriter;
    31 
    32 /** Basic tests in simple configuration.
    33  *
    34  * @author Jaroslav Tulach
    35  */
    36 public class SerializeTest extends BoardCase {
    37     public SerializeTest (String testName) {
    38         super (testName);
    39     }
    40 
    41     @Override
    42     protected Board move(Board b, int player, Direction... where) throws IllegalPositionException {
    43         try {
    44             Board read = reread(b);
    45             return read.move(read.getPlayers().get(player), where);
    46         } catch (IOException ex) {
    47             throw new IllegalStateException(ex);
    48         }
    49     }
    50     protected Board fence(Board b, int player, char x, int y, Fence.Orientation orie)
    51     throws IllegalPositionException {
    52         try {
    53             Board read = reread(b);
    54             return read.fence(read.getPlayers().get(player), x, y, orie);
    55         } catch (IOException ex) {
    56             throw new IllegalStateException(ex);
    57         }
    58     }
    59 
    60     @Override
    61     protected Board apply(Board b, Move move) throws IllegalPositionException {
    62         try {
    63             Board read = reread(b);
    64             return read.apply(move);
    65         } catch (IOException ex) {
    66             throw new IllegalStateException(ex);
    67         }
    68     }
    69 
    70     private Board reread(Board b) throws IOException, IllegalPositionException {
    71         StringWriter w = new StringWriter();
    72         b.write(w);
    73         w.close();
    74         return picture2board(w.toString());
    75         //return Board.valueOf(w.toString());
    76     }
    77 
    78 }