Search in sources :

Example 26 with World

use of mudmap2.backend.World in project mudmap2 by Neop.

the class WorldFileDefaultTest method testReadWriteFile.

/**
 * Test of readFile an writeFile methods, of class WorldFileDefault.
 * @throws java.lang.Exception
 */
@Test
public void testReadWriteFile() throws Exception {
    System.out.println("writeFile");
    String worldName = "FooBar";
    World world = new World(worldName);
    Layer layer1 = world.getNewLayer();
    Layer layer2 = world.getNewLayer();
    String[] placeNames = { "Foo", "Foo Bar", "Baz" };
    Integer[] placeX = { 0, 1, 6 };
    Integer[] placeY = { 0, 0, 4 };
    Place pl0 = new Place(placeNames[0], placeX[0], placeY[0], layer1);
    Place pl1 = new Place(placeNames[1], placeX[1], placeY[1], layer1);
    Place pl2 = new Place(placeNames[2], placeX[2], placeY[2], layer2);
    layer1.put(pl0);
    layer1.put(pl1);
    layer2.put(pl2);
    Path path0 = new Path(pl0, "n", pl1, "s");
    Path path1 = new Path(pl1, "e", pl0, "w");
    pl0.connectPath(path0);
    pl1.connectPath(path1);
    pl0.connectChild(pl2);
    String pgName0 = "myGroup";
    String pgName1 = "my second area";
    Color pgCol0 = Color.orange;
    Color pgCol1 = Color.blue;
    PlaceGroup pg0 = new PlaceGroup(pgName0, pgCol0);
    PlaceGroup pg1 = new PlaceGroup(pgName1, pgCol1);
    pl0.setPlaceGroup(pg0);
    pl1.setPlaceGroup(pg1);
    String flag0 = "a";
    String flag1 = "cd e";
    String flag2 = "fgh";
    pl0.setFlag(flag0, true);
    pl0.setFlag(flag1, true);
    pl0.setFlag(flag2, false);
    String comment0 = "This is a test comment";
    String comment1 = "and a second comment line";
    String comment2 = "and another one";
    pl0.addComment(comment0);
    pl0.addComment(comment1);
    pl0.addComment(comment2);
    String wfFile = folder.getRoot() + "/wfj";
    WorldFileDefault instanceWriter = new WorldFileDefault(wfFile);
    instanceWriter.writeFile(world);
    WorldFileDefault instanceReader = new WorldFileDefault(wfFile);
    World result = instanceReader.readFile();
    assertEquals(worldName, result.getName());
    assertEquals(2, result.getLayers().size());
    int placeNum = 0;
    Layer layer1new = null;
    Layer layer2new = null;
    for (Layer layer : result.getLayers()) {
        placeNum += layer.getPlaces().size();
        // find corresponding layers
        if (layer.getPlaces().size() == 1)
            layer2new = layer;
        else if (layer.getPlaces().size() == 2)
            layer1new = layer;
    }
    assertEquals(3, placeNum);
    assertNotNull(layer1new);
    assertNotNull(layer2new);
    Place pl0r = layer1new.get(placeX[0], placeY[0]);
    Place pl1r = layer1new.get(placeX[1], placeY[1]);
    Place pl2r = layer2new.get(placeX[2], placeY[2]);
    assertNotNull(pl0r);
    assertNotNull(pl1r);
    assertNotNull(pl2r);
    assertEquals(pl0.getName(), pl0r.getName());
    assertEquals(pl1.getName(), pl1r.getName());
    assertEquals(pl2.getName(), pl2r.getName());
    assertEquals(pl0.getX(), pl0r.getX());
    assertEquals(pl0.getY(), pl0r.getY());
    assertEquals(pl1.getX(), pl1r.getX());
    assertEquals(pl1.getY(), pl1r.getY());
    assertEquals(pl2.getX(), pl2r.getX());
    assertEquals(pl2.getY(), pl2r.getY());
    assertEquals(pl0r.getLayer(), pl1r.getLayer());
    assertNotSame(pl0r.getLayer().getId(), pl2r.getLayer().getId());
    assertEquals(2, pl0r.getPaths().size());
    assertEquals(2, pl1r.getPaths().size());
    assertEquals(0, pl2r.getPaths().size());
    Path path0r = pl0r.getPaths().toArray(new Path[2])[0];
    Path path1r = pl0r.getPaths().toArray(new Path[2])[1];
    Path path2r = pl1r.getPaths().toArray(new Path[2])[0];
    Path path3r = pl1r.getPaths().toArray(new Path[2])[1];
    assertTrue(path0r != path1r);
    assertTrue(path0r == path2r || path0r == path3r);
    assertTrue(path1r == path2r || path1r == path3r);
    assertEquals(pl0r.getPathTo("n"), pl1r.getPathTo("s"));
    assertEquals(pl0r.getPathTo("w"), pl1r.getPathTo("e"));
    assertEquals(1, pl0r.getChildren().size());
    assertEquals(0, pl1r.getChildren().size());
    assertEquals(0, pl2r.getChildren().size());
    assertEquals(0, pl0r.getParents().size());
    assertEquals(0, pl1r.getParents().size());
    assertEquals(1, pl2r.getParents().size());
    assertEquals(pl0r.getChildren().toArray(new Place[1])[0], pl2r);
    assertEquals(pl2r.getParents().toArray(new Place[1])[0], pl0r);
    assertNotNull(pl0r.getPlaceGroup());
    assertNotNull(pl1r.getPlaceGroup());
    assertNull(pl2r.getPlaceGroup());
    assertEquals(pl0.getPlaceGroup().getName(), pl0r.getPlaceGroup().getName());
    assertEquals(pl1.getPlaceGroup().getName(), pl1r.getPlaceGroup().getName());
    assertEquals(2, pl0r.getFlags().size());
    assertEquals(0, pl1r.getFlags().size());
    assertEquals(0, pl2r.getFlags().size());
    assertTrue(pl0r.getFlag(flag0));
    assertTrue(pl0r.getFlag(flag1));
    assertFalse(pl0r.getFlag(flag2));
    assertEquals(3, pl0r.getComments().size());
    assertEquals(0, pl1r.getComments().size());
    assertEquals(0, pl2r.getComments().size());
    assertTrue(pl0r.getComments().contains(comment0));
    assertTrue(pl0r.getComments().contains(comment1));
    assertTrue(pl0r.getComments().contains(comment2));
}
Also used : Path(mudmap2.backend.Path) Color(java.awt.Color) World(mudmap2.backend.World) PlaceGroup(mudmap2.backend.PlaceGroup) Layer(mudmap2.backend.Layer) Place(mudmap2.backend.Place) Test(org.junit.Test)

Example 27 with World

use of mudmap2.backend.World in project mudmap2 by Neop.

the class WorldFileJSONTest method testReadWorldName.

/**
 * Test of readWorldName method, of class WorldFileJSON.
 */
@Test
public void testReadWorldName() {
    System.out.println("readWorldName");
    String worldName = "foobar";
    World world = new World(worldName);
    String wfjFile = folder.getRoot() + "/wfj";
    try {
        WorldFileJSON wfj = new WorldFileJSON(wfjFile);
        wfj.writeFile(world);
    } catch (IOException ex) {
        Logger.getLogger(WorldFileJSONTest.class.getName()).log(Level.SEVERE, null, ex);
        fail("Could not create files for test");
    }
    WorldFileJSON instance = new WorldFileJSON(wfjFile);
    try {
        String result = instance.readWorldName();
        assertEquals(worldName, result);
    } catch (Exception ex) {
        Logger.getLogger(WorldFileJSONTest.class.getName()).log(Level.SEVERE, null, ex);
        fail();
    }
}
Also used : IOException(java.io.IOException) World(mudmap2.backend.World) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) InvocationTargetException(java.lang.reflect.InvocationTargetException) Test(org.junit.Test)

Example 28 with World

use of mudmap2.backend.World in project mudmap2 by Neop.

the class WorldFileJSONTest method testReadWriteFile.

/**
 * Test of readFile and writeFile methods, of class WorldFileJSON.
 * @throws java.lang.Exception
 */
@Test
public void testReadWriteFile() throws Exception {
    System.out.println("readFile / writeFile");
    String worldName = "FooBar";
    World world = new World(worldName);
    Layer layer1 = world.getNewLayer();
    Layer layer2 = world.getNewLayer();
    layer1.setName("MyLayer");
    String[] placeNames = { "Foo", "Foo Bar", "Baz" };
    Integer[] placeX = { 0, 1, 6 };
    Integer[] placeY = { 0, 0, 4 };
    Place pl0 = new Place(placeNames[0], placeX[0], placeY[0], layer1);
    Place pl1 = new Place(placeNames[1], placeX[1], placeY[1], layer1);
    Place pl2 = new Place(placeNames[2], placeX[2], placeY[2], layer2);
    layer1.put(pl0);
    layer1.put(pl1);
    layer2.put(pl2);
    Path path0 = new Path(pl0, "n", pl1, "s");
    Path path1 = new Path(pl1, "e", pl0, "w");
    pl0.connectPath(path0);
    pl1.connectPath(path1);
    pl0.connectChild(pl2);
    String pgName0 = "myArea";
    String pgName1 = "my second area";
    Color pgCol0 = Color.orange;
    Color pgCol1 = Color.blue;
    PlaceGroup pg0 = new PlaceGroup(pgName0, pgCol0);
    PlaceGroup pg1 = new PlaceGroup(pgName1, pgCol1);
    pl0.setPlaceGroup(pg0);
    pl1.setPlaceGroup(pg1);
    String flag0 = "a";
    String flag1 = "cd e";
    String flag2 = "fgh";
    pl0.setFlag(flag0, true);
    pl0.setFlag(flag1, true);
    pl0.setFlag(flag2, false);
    String comment0 = "This is a test comment";
    String comment1 = "and a second comment line";
    String comment2 = "and another one";
    pl0.addComment(comment0);
    pl0.addComment(comment1);
    pl0.addComment(comment2);
    String wfjFile = folder.getRoot() + "/wfj";
    WorldFileJSON instanceWriter = new WorldFileJSON(wfjFile);
    instanceWriter.writeFile(world);
    WorldFileJSON instanceReader = new WorldFileJSON(wfjFile);
    World result = instanceReader.readFile();
    assertEquals(worldName, result.getName());
    assertEquals(2, result.getLayers().size());
    int placeNum = 0;
    Layer layer1new = null;
    Layer layer2new = null;
    for (Layer layer : result.getLayers()) {
        placeNum += layer.getPlaces().size();
        // find corresponding layers
        if (layer.getPlaces().size() == 1)
            layer2new = layer;
        else if (layer.getPlaces().size() == 2)
            layer1new = layer;
    }
    assertEquals(3, placeNum);
    assertNotNull(layer1new);
    assertNotNull(layer2new);
    Place pl0r = layer1new.get(placeX[0], placeY[0]);
    Place pl1r = layer1new.get(placeX[1], placeY[1]);
    Place pl2r = layer2new.get(placeX[2], placeY[2]);
    assertNotNull(pl0r);
    assertNotNull(pl1r);
    assertNotNull(pl2r);
    assertEquals(pl0.getName(), pl0r.getName());
    assertEquals(pl1.getName(), pl1r.getName());
    assertEquals(pl2.getName(), pl2r.getName());
    assertEquals(pl0.getX(), pl0r.getX());
    assertEquals(pl0.getY(), pl0r.getY());
    assertEquals(pl1.getX(), pl1r.getX());
    assertEquals(pl1.getY(), pl1r.getY());
    assertEquals(pl2.getX(), pl2r.getX());
    assertEquals(pl2.getY(), pl2r.getY());
    assertEquals(pl0r.getLayer(), pl1r.getLayer());
    assertNotSame(pl0r.getLayer().getId(), pl2r.getLayer().getId());
    assertEquals(pl0.getLayer().getName(), pl0r.getLayer().getName());
    assertTrue(pl0r.getLayer().hasName());
    assertEquals(pl1.getLayer().getName(), pl1r.getLayer().getName());
    assertFalse(pl2r.getLayer().hasName());
    assertEquals(2, pl0r.getPaths().size());
    assertEquals(2, pl1r.getPaths().size());
    assertEquals(0, pl2r.getPaths().size());
    Path path0r = pl0r.getPaths().toArray(new Path[2])[0];
    Path path1r = pl0r.getPaths().toArray(new Path[2])[1];
    Path path2r = pl1r.getPaths().toArray(new Path[2])[0];
    Path path3r = pl1r.getPaths().toArray(new Path[2])[1];
    assertTrue(path0r != path1r);
    assertTrue(path0r == path2r || path0r == path3r);
    assertTrue(path1r == path2r || path1r == path3r);
    assertEquals(pl0r.getPathTo("n"), pl1r.getPathTo("s"));
    assertEquals(pl0r.getPathTo("w"), pl1r.getPathTo("e"));
    assertEquals(1, pl0r.getChildren().size());
    assertEquals(0, pl1r.getChildren().size());
    assertEquals(0, pl2r.getChildren().size());
    assertEquals(0, pl0r.getParents().size());
    assertEquals(0, pl1r.getParents().size());
    assertEquals(1, pl2r.getParents().size());
    assertEquals(pl0r.getChildren().toArray(new Place[1])[0], pl2r);
    assertEquals(pl2r.getParents().toArray(new Place[1])[0], pl0r);
    assertNotNull(pl0r.getPlaceGroup());
    assertNotNull(pl1r.getPlaceGroup());
    assertNull(pl2r.getPlaceGroup());
    assertEquals(pl0.getPlaceGroup().getName(), pl0r.getPlaceGroup().getName());
    assertEquals(pl1.getPlaceGroup().getName(), pl1r.getPlaceGroup().getName());
    assertEquals(2, pl0r.getFlags().size());
    assertEquals(0, pl1r.getFlags().size());
    assertEquals(0, pl2r.getFlags().size());
    assertTrue(pl0r.getFlag(flag0));
    assertTrue(pl0r.getFlag(flag1));
    assertFalse(pl0r.getFlag(flag2));
    assertEquals(3, pl0r.getComments().size());
    assertEquals(0, pl1r.getComments().size());
    assertEquals(0, pl2r.getComments().size());
    assertTrue(pl0r.getComments().contains(comment0));
    assertTrue(pl0r.getComments().contains(comment1));
    assertTrue(pl0r.getComments().contains(comment2));
// TODO: test labels
}
Also used : Path(mudmap2.backend.Path) Color(java.awt.Color) World(mudmap2.backend.World) PlaceGroup(mudmap2.backend.PlaceGroup) Layer(mudmap2.backend.Layer) Place(mudmap2.backend.Place) Test(org.junit.Test)

Example 29 with World

use of mudmap2.backend.World in project mudmap2 by Neop.

the class WorldPanelTest method testPushPopPosition.

/**
 * Test of push/pop/get/restore/resetPosition method, of class WorldPanel.
 */
@Test
public void testPushPopPosition() {
    System.out.println("pushPosition");
    World world = new World();
    WorldPanel instance = new WorldPanel(null, world, false);
    WorldCoordinate home = new WorldCoordinate(1, 2, 3);
    WorldCoordinate pos1 = new WorldCoordinate(4, 6, 1);
    WorldCoordinate pos2 = new WorldCoordinate(1, 2, 6);
    WorldCoordinate pos3 = new WorldCoordinate(1, 8, 4);
    world.setHome(home);
    assertTrue(home.compareTo(instance.getPosition()) == 0);
    instance.popPosition();
    assertTrue(home.compareTo(instance.getPosition()) == 0);
    instance.pushPosition(pos1);
    WorldCoordinate push1 = instance.getPosition();
    // assertTrue(pos1.compareTo(instance.getPosition()) == 0);
    instance.pushPosition(pos2);
    WorldCoordinate push2 = instance.getPosition();
    // assertTrue(pos2.compareTo(instance.getPosition()) == 0);
    instance.pushPosition(pos3);
    WorldCoordinate push3 = instance.getPosition();
    // assertTrue(pos3.compareTo(instance.getPosition()) == 0);
    instance.popPosition();
    assertTrue(push2.compareTo(instance.getPosition()) == 0);
    instance.popPosition();
    assertTrue(push1.compareTo(instance.getPosition()) == 0);
    instance.popPosition();
    assertTrue(home.compareTo(instance.getPosition()) == 0);
    instance.popPosition();
    assertTrue(home.compareTo(instance.getPosition()) == 0);
    instance.restorePosition();
    assertTrue(push1.compareTo(instance.getPosition()) == 0);
    instance.restorePosition();
    assertTrue(push2.compareTo(instance.getPosition()) == 0);
    instance.restorePosition();
    assertTrue(push3.compareTo(instance.getPosition()) == 0);
    instance.restorePosition();
    assertTrue(push3.compareTo(instance.getPosition()) == 0);
    WorldCoordinate reset = new WorldCoordinate(12, 1, 6);
    instance.resetHistory(reset);
    assertTrue(reset.compareTo(instance.getPosition()) == 0);
}
Also used : WorldCoordinate(mudmap2.backend.WorldCoordinate) World(mudmap2.backend.World) Test(org.junit.Test)

Example 30 with World

use of mudmap2.backend.World in project mudmap2 by Neop.

the class WorldPanelTest method testIsCursorEnabled.

/**
 * Test of is/setCursorEnabled method, of class WorldPanel.
 */
@Test
public void testIsCursorEnabled() {
    System.out.println("isCursorEnabled");
    World world = new World();
    WorldPanel instance = new WorldPanel(null, world, false);
    boolean result = instance.isCursorEnabled();
    assertTrue(result);
    instance.setCursorEnabled(false);
    result = instance.isCursorEnabled();
    assertFalse(result);
    instance.setCursorEnabled(true);
    result = instance.isCursorEnabled();
    assertTrue(result);
}
Also used : World(mudmap2.backend.World) Test(org.junit.Test)

Aggregations

World (mudmap2.backend.World)31 Test (org.junit.Test)27 IOException (java.io.IOException)11 FileNotFoundException (java.io.FileNotFoundException)9 Place (mudmap2.backend.Place)9 File (java.io.File)7 WorldFileDefault (mudmap2.backend.WorldFileReader.current.WorldFileDefault)7 Layer (mudmap2.backend.Layer)6 Path (mudmap2.backend.Path)6 WorldCoordinate (mudmap2.backend.WorldCoordinate)6 Color (java.awt.Color)5 HashMap (java.util.HashMap)5 WorldFile (mudmap2.backend.WorldFileReader.WorldFile)5 PlaceGroup (mudmap2.backend.PlaceGroup)4 ActionEvent (java.awt.event.ActionEvent)3 ActionListener (java.awt.event.ActionListener)3 Map (java.util.Map)3 JLabel (javax.swing.JLabel)3 RiskLevel (mudmap2.backend.RiskLevel)3 BorderLayout (java.awt.BorderLayout)2