1.1 --- a/webidor/src/test/java/cz/xelfi/quoridor/webidor/FinishedGameTest.java Thu Jan 07 22:34:17 2010 +0100
1.2 +++ b/webidor/src/test/java/cz/xelfi/quoridor/webidor/FinishedGameTest.java Sun Apr 25 21:20:09 2010 +0200
1.3 @@ -26,6 +26,7 @@
1.4
1.5 package cz.xelfi.quoridor.webidor;
1.6
1.7 +import java.util.Properties;
1.8 import com.sun.jersey.api.client.GenericType;
1.9 import com.sun.jersey.api.client.UniformInterfaceException;
1.10 import com.sun.jersey.test.framework.JerseyTest;
1.11 @@ -59,7 +60,7 @@
1.12 dir.mkdirs();
1.13 File passwd = new File(dir, "passwd");
1.14 FileOutputStream os = new FileOutputStream(passwd);
1.15 - os.write("Jarda=heslo\nJirka=pesko\n".getBytes("UTF-8"));
1.16 + os.write("Jarda=heslo\nJirka=pesko\nMaster=mr\n".getBytes("UTF-8"));
1.17 os.close();
1.18 super.setUp();
1.19 }
1.20 @@ -225,4 +226,47 @@
1.21 assertFalse("is finished", end.getId().getStatus().isInProgress());
1.22 }
1.23
1.24 + @Test public void testResignForeignGame() throws Exception {
1.25 + String logJarda = webResource.path("login").
1.26 + queryParam("name", "Jarda").
1.27 + queryParam("password", "heslo").
1.28 + accept(MediaType.TEXT_PLAIN).
1.29 + put(String.class);
1.30 + GameId s = webResource.path("games").queryParam("white", "Jarda")
1.31 + .queryParam("loginID", logJarda)
1.32 + .queryParam("black", "Jirka").post(GameId.class);
1.33 + File usersDir = new File(dir, "users");
1.34 + usersDir.mkdirs();
1.35 + File Master = new File(usersDir, "Master");
1.36 + {
1.37 + Properties p = new Properties();
1.38 + p.setProperty("email", "mas@ter.cz");
1.39 + p.setProperty("permission.resign", "true");
1.40 + p.store(new FileOutputStream(Master), "");
1.41 + }
1.42 +
1.43 + assertTrue("In progress", s.getStatus().isInProgress());
1.44 + String logMaster = webResource.path("login").
1.45 + queryParam("name", "Master").
1.46 + queryParam("password", "mr").
1.47 + accept(MediaType.TEXT_PLAIN).
1.48 + put(String.class);
1.49 +
1.50 + webResource.path("games/" + s.getId()).
1.51 + queryParam("loginID", logMaster).
1.52 + queryParam("player", "Jarda").
1.53 + queryParam("move", "RESIGN").put(GameId.class);
1.54 + try {
1.55 + Game end = webResource.path("games/" + s.getId()).accept(MediaType.TEXT_XML).get(Game.class);
1.56 + fail("Should not be able to get game when finished");
1.57 + } catch (UniformInterfaceException ex) {
1.58 + // OK
1.59 + }
1.60 + Game end = webResource.path("games/" + s.getId()).queryParam("loginID", logJarda).accept(MediaType.TEXT_XML).get(Game.class);
1.61 + assertEquals("BlackWins", GameStatus.blackWon, end.getId().getStatus());
1.62 + assertEquals("Jirka wins", "Jirka", end.getCurrentPlayer());
1.63 +
1.64 + assertFalse("is finished", end.getId().getStatus().isInProgress());
1.65 + }
1.66 +
1.67 }