2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
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]"
24 * Portions Copyrighted 2009 Jaroslav Tulach
27 package cz.xelfi.quoridor.webidor;
29 import cz.xelfi.quoridor.webidor.resources.Games;
30 import cz.xelfi.quoridor.webidor.resources.Quoridor;
32 import java.io.FileOutputStream;
33 import java.io.IOException;
34 import java.util.ResourceBundle;
35 import org.junit.After;
36 import org.junit.Before;
37 import org.junit.Test;
38 import static org.junit.Assert.*;
42 * @author Jaroslav Tulach <jtulach@netbeans.org>
44 public class GamesTest extends Object {
46 System.setProperty("JERSEY_HTTP_PORT", "33436");
51 public void setUp() throws Exception {
52 dir = File.createTempFile("quoridor", ".dir");
54 System.setProperty("quoridor.dir", dir.getPath());
58 public void tearDown() throws Exception {
62 static void deleteRec(File dir) throws IOException {
66 File[] arr = dir.listFiles();
75 @Test public void testCreateAGame() throws Exception {
76 File f = new File(dir, "x");
77 f.getParentFile().mkdirs();
78 FileOutputStream os = new FileOutputStream(f);
79 os.write("# white: W\n# black: B\n# status: IN_PROGRESS\nN S\n\n".getBytes("UTF-8"));
84 long middle = f.lastModified();
88 Games games = new Games(dir, new Quoridor());
89 Game g = games.getBoardInfo("x", -1);
90 assertNotNull("Game found", g);
91 assertNotNull("Board found", g.getBoard());
92 assertEquals("List of moves has two", 2, g.getMoves().size());
94 assertEquals("Last move is last touch of the file", middle, g.getId().getModified());
97 @Test public void testLoadGameWithComments() throws Exception {
98 File f = new File(dir, "x");
99 f.getParentFile().mkdirs();
100 FileOutputStream os = new FileOutputStream(f);
101 os.write("# white: W\n# black: B\n# status: IN_PROGRESS\nN #good move\n... S # ok move\n\n".getBytes("UTF-8"));
106 long middle = f.lastModified();
110 Games games = new Games(dir, new Quoridor());
111 Game g = games.getBoardInfo("x", -1);
112 assertNotNull("Game found", g);
113 assertNotNull("Board found", g.getBoard());
114 assertEquals("List of moves has two", 2, g.getMoves().size());
116 assertEquals("Last move is last touch of the file", middle, g.getId().getModified());
119 @Test public void testLoadGameWithInternationalComments() throws Exception {
120 File f = new File(dir, "x");
121 f.getParentFile().mkdirs();
122 FileOutputStream os = new FileOutputStream(f);
123 ResourceBundle b = ResourceBundle.getBundle("cz/xelfi/quoridor/webidor/TestBundle");
124 String comment = b.getString("COMMENT");
125 os.write(("# white: W\n# black: B\n# status: IN_PROGRESS\nN\n#" +
126 comment + "\n... S # ok move\n\n").getBytes("UTF-8"));
131 long middle = f.lastModified();
135 Games games = new Games(dir, new Quoridor());
136 Game g = games.getBoardInfo("x", -1);
137 assertNotNull("Game found", g);
138 assertNotNull("Board found", g.getBoard());
139 assertEquals("List of moves has two", 2, g.getMoves().size());
140 String commentRead = g.getMoves().get(0).getComments().get(0).getComment();
141 assertEquals(comment, commentRead);
143 assertEquals("Last move is last touch of the file", middle, g.getId().getModified());