webidor/src/test/java/cz/xelfi/quoridor/webidor/QuoridorTest.java
changeset 48 69e897fe8140
parent 46 71e4cf307c93
child 54 f041b6570ff9
     1.1 --- a/webidor/src/test/java/cz/xelfi/quoridor/webidor/QuoridorTest.java	Sat Aug 29 15:55:53 2009 +0200
     1.2 +++ b/webidor/src/test/java/cz/xelfi/quoridor/webidor/QuoridorTest.java	Sun Aug 30 14:37:47 2009 +0200
     1.3 @@ -33,14 +33,12 @@
     1.4  import cz.xelfi.quoridor.Board;
     1.5  import cz.xelfi.quoridor.Move;
     1.6  import cz.xelfi.quoridor.webidor.resources.Games;
     1.7 -import cz.xelfi.quoridor.webidor.resources.Quoridor;
     1.8  import java.io.File;
     1.9  import java.io.FileReader;
    1.10  import java.io.IOException;
    1.11  import java.util.List;
    1.12  import java.util.Map;
    1.13  import javax.ws.rs.core.MediaType;
    1.14 -import org.codehaus.jettison.json.JSONObject;
    1.15  import org.junit.Test;
    1.16  import static org.junit.Assert.*;
    1.17  
    1.18 @@ -94,33 +92,33 @@
    1.19  
    1.20      @Test public void testCreateAGame() throws Exception {
    1.21          webResource = webResource.path("api");
    1.22 -        Game s = webResource.path("games").queryParam("white", "Jarda")
    1.23 -                .queryParam("black", "Jirka").post(Game.class);
    1.24 +        GameId s = webResource.path("games").queryParam("white", "Jarda")
    1.25 +                .queryParam("black", "Jirka").post(GameId.class);
    1.26  
    1.27          String msg = webResource.path("games").get(String.class);
    1.28          //List<Game> games =  webResource.path("games").get(new GenericType<List<Game>>() {});
    1.29  
    1.30 -        GenericType<List<Game>> gType = new GenericType<List<Game>>() {};
    1.31 +        GenericType<List<GameId>> gType = new GenericType<List<GameId>>() {};
    1.32  
    1.33 -        List<Game> games = webResource.path("games").accept("application/json").get(gType);
    1.34 +        List<GameId> games = webResource.path("games").accept("application/json").get(gType);
    1.35          assertEquals("One game", 1, games.size());
    1.36          assertEquals("Same white", "Jarda", games.get(0).getWhite());
    1.37          assertEquals("Same black", "Jirka", games.get(0).getBlack());
    1.38  
    1.39 -        Game s1 = webResource.path("games/" + s.getId()).queryParam("player", "Jarda").queryParam("move", "N").put(Game.class);
    1.40 +        GameId s1 = webResource.path("games/" + s.getId()).queryParam("player", "Jarda").queryParam("move", "N").put(GameId.class);
    1.41          try {
    1.42 -            Game s2 = webResource.path("games/" + s.getId()).queryParam("player", "Jarda").queryParam("move", "N").put(Game.class);
    1.43 +            GameId s2 = webResource.path("games/" + s.getId()).queryParam("player", "Jarda").queryParam("move", "N").put(GameId.class);
    1.44              fail("Not Jarda's turn, previous call shall fail");
    1.45          } catch (UniformInterfaceException ex) {
    1.46              // OK
    1.47          }
    1.48          try {
    1.49 -            Game s2 = webResource.path("games/" + s.getId()).queryParam("player", "Jirka").queryParam("move", "NONSENCE").put(Game.class);
    1.50 +            GameId s2 = webResource.path("games/" + s.getId()).queryParam("player", "Jirka").queryParam("move", "NONSENCE").put(GameId.class);
    1.51              fail("Invalid move");
    1.52          } catch (UniformInterfaceException ex) {
    1.53              // OK
    1.54          }
    1.55 -        Game s2 = webResource.path("games/" + s.getId()).queryParam("player", "Jirka").queryParam("move", "S").put(Game.class);
    1.56 +        GameId s2 = webResource.path("games/" + s.getId()).queryParam("player", "Jirka").queryParam("move", "S").put(GameId.class);
    1.57          assertNotNull("Successful move", s2);
    1.58  
    1.59          File game = new File(new File(dir, "games"), s2.getId());
    1.60 @@ -144,22 +142,24 @@
    1.61          Games read = new Games(new File(dir, "games"));
    1.62          List<Game> readGames = read.getGames();
    1.63          assertEquals("One game read", 1, readGames.size());
    1.64 -        Board board = read.getGames().get(0).getBoard();
    1.65 +        Board board = readGames.get(0).getBoard();
    1.66          assertEquals(1, board.getPlayers().get(0).getRow());
    1.67          assertEquals(7, board.getPlayers().get(1).getRow());
    1.68 -        assertEquals(Move.NORTH, read.getGames().get(0).getMoves().get(0));
    1.69 -        assertEquals(Move.SOUTH, read.getGames().get(0).getMoves().get(1));
    1.70 +        assertEquals(Move.NORTH, readGames.get(0).getMoves().get(0));
    1.71 +        assertEquals(Move.SOUTH, readGames.get(0).getMoves().get(1));
    1.72  
    1.73          class GMap extends GenericType<Map<String,Object>>{}
    1.74 -        JSONObject map = webResource.path("games").path(s.getId()).accept(MediaType.APPLICATION_JSON).get(JSONObject.class);
    1.75 -        assertNotNull("Map really returned", map);
    1.76 -        String txtBoard = (String) map.get("board");
    1.77 -        assertNotNull("Contains its textual form", txtBoard);
    1.78 -        assertEquals("It is same as text of our game", board.toString(), txtBoard);
    1.79 +        String text = webResource.path("games").path(s.getId()).accept(MediaType.TEXT_PLAIN).get(String.class);
    1.80 +        if (text.indexOf("-----") == -1) {
    1.81 +            fail("Expecting board:\n" + text);
    1.82 +        }
    1.83 +        Game readGame = webResource.path("games").path(s.getId()).accept(MediaType.TEXT_XML).get(Game.class);
    1.84 +        assertNotNull("Game really returned", readGame);
    1.85 +        assertEquals("Same game as in text representation", readGame.getBoard(), Board.valueOf(text));
    1.86 +        assertEquals("It is same as text of our game", readGame.getBoard().toString(), text);
    1.87  
    1.88 -        Object og = map.getJSONObject("game");
    1.89 -        assertTrue("Instance of JSON: " + og, og instanceof JSONObject);
    1.90 -        JSONObject jg = (JSONObject)og;
    1.91 +        assertEquals(Move.NORTH, readGame.getMoves().get(0));
    1.92 +        assertEquals(Move.SOUTH, readGame.getMoves().get(1));
    1.93      }
    1.94  
    1.95  }