001/* Copyright 2000 by Basil Vandegriend. All rights reserved. */ 002 003package com.basilv.examples.dom4j; 004 005/** 006 * Unit tests for a single class. 007 */ 008public 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}