// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.data.osm.history; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.Date; import org.junit.Test; import org.openstreetmap.josm.data.osm.OsmPrimitiveType; public class HistoryWayTest { @Test public void wayTest() { Date d = new Date(); HistoryWay way = new HistoryWay( 1, 2, true, "testuser", 3, 4, d ); assertEquals(1, way.getId()); assertEquals(2, way.getVersion()); assertEquals(true, way.isVisible()); assertEquals("testuser", way.getUser()); assertEquals(3, way.getUid()); assertEquals(4, way.getChangesetId()); assertEquals(d, way.getTimestamp()); assertEquals(0, way.getNumNodes()); } @Test public void getType() { Date d = new Date(); HistoryWay way = new HistoryWay( 1, 2, true, "testuser", 3, 4, d ); assertEquals(OsmPrimitiveType.WAY, way.getType()); } @Test public void nodeManipulation() { Date d = new Date(); HistoryWay way = new HistoryWay( 1, 2, true, "testuser", 3, 4, d ); way.addNode(1); assertEquals(1, way.getNumNodes()); assertEquals(1, way.getNodeId(0)); try { way.getNodeId(1); fail("expected expection of type " + IndexOutOfBoundsException.class.toString()); } catch(IndexOutOfBoundsException e) { // OK } way.addNode(5); assertEquals(2, way.getNumNodes()); assertEquals(5, way.getNodeId(1)); } @Test public void iterating() { Date d = new Date(); HistoryWay way = new HistoryWay( 1, 2, true, "testuser", 3, 4, d ); way.addNode(1); way.addNode(2); ArrayList<Long> ids = new ArrayList<Long>(); for (long id : way.getNodes()) { ids.add(id); } assertEquals(2, ids.size()); assertEquals(1, (long) ids.get(0)); assertEquals(2, (long) ids.get(1)); } }