OMG tests that actually test something. (This coming from the reformed original
author of the non-testing test.) git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@1052 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
@@ -21,11 +21,16 @@
|
|||||||
|
|
||||||
package com.threerings.media.tile.tools.xml;
|
package com.threerings.media.tile.tools.xml;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Map;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.threerings.media.tile.ObjectTileSet;
|
||||||
|
import com.threerings.media.tile.SwissArmyTileSet;
|
||||||
|
import com.threerings.media.tile.UniformTileSet;
|
||||||
|
|
||||||
import org.junit.*;
|
import org.junit.*;
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@@ -35,30 +40,59 @@ public class XMLTileSetParserTest
|
|||||||
{
|
{
|
||||||
@Test
|
@Test
|
||||||
public void testRuleSets ()
|
public void testRuleSets ()
|
||||||
|
throws IOException
|
||||||
{
|
{
|
||||||
HashMap<String, TileSet> sets = new HashMap<String, TileSet>();
|
Map<String, TileSet> sets = new HashMap<String, TileSet>();
|
||||||
|
|
||||||
XMLTileSetParser parser = new XMLTileSetParser();
|
XMLTileSetParser parser = new XMLTileSetParser();
|
||||||
// add some rulesets
|
|
||||||
parser.addRuleSet("tilesets/uniform", new UniformTileSetRuleSet());
|
parser.addRuleSet("tilesets/uniform", new UniformTileSetRuleSet());
|
||||||
parser.addRuleSet("tilesets/swissarmy", new SwissArmyTileSetRuleSet());
|
parser.addRuleSet("tilesets/swissarmy", new SwissArmyTileSetRuleSet());
|
||||||
parser.addRuleSet("tilesets/object", new ObjectTileSetRuleSet());
|
parser.addRuleSet("tilesets/object", new ObjectTileSetRuleSet());
|
||||||
|
|
||||||
// load up the tilesets
|
// load up the tilesets
|
||||||
try {
|
|
||||||
parser.loadTileSets(TILESET_PATH, sets);
|
parser.loadTileSets(TILESET_PATH, sets);
|
||||||
|
|
||||||
// print them out
|
// make sure they were properly parsed
|
||||||
Iterator<TileSet> iter = sets.values().iterator();
|
SwissArmyTileSet fset = (SwissArmyTileSet)sets.remove("Fringe");
|
||||||
while (iter.hasNext()) {
|
// System.out.println(fset);
|
||||||
// iter.next();
|
assertEquals("Fringe", fset.getName());
|
||||||
System.out.println(iter.next());
|
assertEquals("fringe.png", fset.getImagePath());
|
||||||
|
assertEquals(40, fset.getTileCount());
|
||||||
|
assertArrayEquals(repeat(64, 5), fset.getWidths());
|
||||||
|
assertArrayEquals(repeat(48, 5), fset.getHeights());
|
||||||
|
assertArrayEquals(repeat(8, 5), fset.getTileCounts());
|
||||||
|
|
||||||
|
ObjectTileSet bset = (ObjectTileSet)sets.remove("Building");
|
||||||
|
// System.out.println(bset);
|
||||||
|
assertEquals("Building", bset.getName());
|
||||||
|
assertEquals("building.png", bset.getImagePath());
|
||||||
|
assertEquals(4, bset.getTileCount());
|
||||||
|
assertArrayEquals(repeat(224, 1), bset.getWidths());
|
||||||
|
assertArrayEquals(repeat(293, 1), bset.getHeights());
|
||||||
|
assertArrayEquals(repeat(4, 1), bset.getTileCounts());
|
||||||
|
int[] owidths = { 4, 3, 4, 3 }, oheights = { 3, 4, 3, 4 };
|
||||||
|
for (int ii = 0; ii < 4; ii++) {
|
||||||
|
assertEquals(owidths[ii], bset.getBaseWidth(ii));
|
||||||
|
assertEquals(oheights[ii], bset.getBaseHeight(ii));
|
||||||
|
}
|
||||||
|
// TODO: test offset pos and gap size
|
||||||
|
|
||||||
|
UniformTileSet iset = (UniformTileSet)sets.remove("Node Icons");
|
||||||
|
// System.out.println(iset);
|
||||||
|
assertEquals("Node Icons", iset.getName());
|
||||||
|
assertEquals("node-icons.png", iset.getImagePath());
|
||||||
|
assertEquals(16, iset.getWidth());
|
||||||
|
assertEquals(16, iset.getHeight());
|
||||||
|
// TODO: can't test getTileCount() since that requires real image data
|
||||||
|
|
||||||
|
assertEquals(0, sets.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (IOException ioe) {
|
protected int[] repeat (int value, int count)
|
||||||
ioe.printStackTrace();
|
{
|
||||||
fail("loadTileSets() failed");
|
int[] ints = new int[count];
|
||||||
}
|
Arrays.fill(ints, value);
|
||||||
|
return ints;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static final String TILESET_PATH = "rsrc/media/tile/tools/xml/tilesets.xml";
|
protected static final String TILESET_PATH = "rsrc/media/tile/tools/xml/tilesets.xml";
|
||||||
|
|||||||
Reference in New Issue
Block a user