001 /* Copyright 2000 by Basil Vandegriend. All rights reserved. */
002
003 package com.basilv.examples.dom4j;
004
005 /**
006 * Unit tests for a single class.
007 */
008 public class MazeXmlConverterTest extends junit.framework.TestCase
009 {
010 public MazeXmlConverterTest(String name) {
011 super(name);
012 }
013
014 public void testEmpty() {
015 Maze maze = new Maze(3, 5);
016 verifyConvertToXmlAndBack(maze);
017 }
018
019 public void testWithSomeWalls() {
020 Maze maze = new Maze(5, 4);
021 maze.setDescription("A maze");
022 maze.addWall(1, 0, 1, 1);
023 maze.addWall(0, 2, 1, 2);
024 maze.addWall(1, 3, 1, 4);
025 maze.addWall(2, 1, 2, 3);
026 maze.addWall(2, 1, 3, 1);
027 maze.addWall(3, 3, 3, 4);
028 maze.addWall(3, 3, 4, 3);
029 maze.addWall(4, 2, 4, 4);
030 maze.addWall(4, 1, 5, 1);
031
032 verifyConvertToXmlAndBack(maze);
033 }
034
035 private void verifyConvertToXmlAndBack(Maze originalMaze) {
036 MazeXmlConverter converter = new MazeXmlConverter();
037 String xml = converter.toXml(originalMaze);
038 assertNotNull(xml);
039
040 Maze newMaze = converter.fromXml(xml);
041 assertNotNull(newMaze);
042 assertEquals(originalMaze.getSize(), newMaze.getSize());
043
044 if (originalMaze.getDescription() == null) {
045 assertEquals("", newMaze.getDescription());
046 } else {
047 assertEquals(originalMaze.getDescription(), newMaze.getDescription());
048 }
049
050 assertEquals(originalMaze.getWalls().size(), newMaze.getWalls().size());
051 for (int i = 0; i < originalMaze.getWalls().size(); i++) {
052 Wall originalWall = originalMaze.getWalls().get(i);
053 Wall newWall = newMaze.getWalls().get(i);
054 assertEquals(originalWall, newWall);
055 }
056
057 }
058
059 }