Changeset 8510 in josm for trunk/test/unit/org/openstreetmap/josm/io/OsmChangesetContentParserTest.groovy
- Timestamp:
- 2015-06-20T23:42:21+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/unit/org/openstreetmap/josm/io/OsmChangesetContentParserTest.groovy
r7938 r8510 2 2 package org.openstreetmap.josm.io; 3 3 4 import java.nio.charset.StandardCharsets 5 4 6 import org.junit.Test 5 6 import java.nio.charset.StandardCharsets 7 8 import org.openstreetmap.josm.data.osm.ChangesetDataSet; 9 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 10 import org.openstreetmap.josm.data.osm.SimplePrimitiveId; 11 import org.openstreetmap.josm.data.osm.ChangesetDataSet.ChangesetModificationType; 12 import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive; 13 import org.openstreetmap.josm.data.osm.history.HistoryRelation; 14 import org.openstreetmap.josm.data.osm.history.HistoryWay; 15 import org.openstreetmap.josm.gui.progress.NullProgressMonitor; 16 7 import org.openstreetmap.josm.data.osm.ChangesetDataSet 8 import org.openstreetmap.josm.data.osm.OsmPrimitiveType 9 import org.openstreetmap.josm.data.osm.SimplePrimitiveId 10 import org.openstreetmap.josm.data.osm.ChangesetDataSet.ChangesetModificationType 11 import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive 12 import org.openstreetmap.josm.data.osm.history.HistoryRelation 13 import org.openstreetmap.josm.data.osm.history.HistoryWay 14 import org.openstreetmap.josm.gui.progress.NullProgressMonitor 17 15 18 16 class OsmChangesetContentParserTest { 19 final shouldFail = new GroovyTestCase().&shouldFail20 21 @Test22 public void test_Constructor() {23 OsmChangesetContentParser parser24 25 // should be OK26 parser = new OsmChangesetContentParser(new ByteArrayInputStream("".bytes))17 final shouldFail = new GroovyTestCase().&shouldFail 18 19 @Test 20 public void test_Constructor() { 21 OsmChangesetContentParser parser 22 23 // should be OK 24 parser = new OsmChangesetContentParser(new ByteArrayInputStream("".bytes)) 27 25 28 26 shouldFail(IllegalArgumentException) { … … 33 31 parser = new OsmChangesetContentParser((InputStream) null) 34 32 } 35 }36 37 38 @Test39 public void test_parse_arguments() {40 OsmChangesetContentParser parser41 42 def String doc = """43 <osmChange version="0.6" generator="OpenStreetMap server">44 </osmChange>45 """46 47 // should be OK48 parser = new OsmChangesetContentParser(new ByteArrayInputStream(doc.getBytes(StandardCharsets.UTF_8)))49 parser.parse null50 51 // should be OK52 parser = new OsmChangesetContentParser(new ByteArrayInputStream(doc.getBytes(StandardCharsets.UTF_8)))53 parser.parse NullProgressMonitor.INSTANCE54 55 // should be OK56 parser = new OsmChangesetContentParser(doc)57 parser.parse null58 } 59 60 /**61 * A simple changeset content document with one created node62 * 63 */64 @Test65 public void test_OK_OneCreatedNode() {66 OsmChangesetContentParser parser67 68 def String doc = """69 <osmChange version="0.6" generator="OpenStreetMap server"> 70 <create>71 <node id="1" version="1" visible="true" changeset="1" lat="1.0" lon="1.0" timestamp="2009-12-22" />72 </create>73 </osmChange> 74 """ 75 76 // should be OK77 parser = new OsmChangesetContentParser(doc)78 ChangesetDataSet ds = parser.parse()79 80 assert ds.size() == 1 81 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE));82 assert p != null83 assert p.getId() == 184 assert p.getVersion() == 185 assert p.getChangesetId() == 186 assert p.getTimestamp() != null87 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.CREATED88 assert ds.isCreated(p.getPrimitiveId())89 }90 91 /**92 * A simple changeset content document with one updated node93 * 94 */95 @Test96 public void test_OK_OneUpdatedNode() {97 OsmChangesetContentParser parser98 99 def String doc = """33 } 34 35 36 @Test 37 public void test_parse_arguments() { 38 OsmChangesetContentParser parser 39 40 def String doc = """ 41 <osmChange version="0.6" generator="OpenStreetMap server"> 42 </osmChange> 43 """ 44 45 // should be OK 46 parser = new OsmChangesetContentParser(new ByteArrayInputStream(doc.getBytes(StandardCharsets.UTF_8))) 47 parser.parse null 48 49 // should be OK 50 parser = new OsmChangesetContentParser(new ByteArrayInputStream(doc.getBytes(StandardCharsets.UTF_8))) 51 parser.parse NullProgressMonitor.INSTANCE 52 53 // should be OK 54 parser = new OsmChangesetContentParser(doc) 55 parser.parse null 56 } 57 58 /** 59 * A simple changeset content document with one created node 60 * 61 */ 62 @Test 63 public void test_OK_OneCreatedNode() { 64 OsmChangesetContentParser parser 65 66 def String doc = """ 67 <osmChange version="0.6" generator="OpenStreetMap server"> 68 <create> 69 <node id="1" version="1" visible="true" changeset="1" lat="1.0" lon="1.0" timestamp="2009-12-22" /> 70 </create> 71 </osmChange> 72 """ 73 74 // should be OK 75 parser = new OsmChangesetContentParser(doc) 76 ChangesetDataSet ds = parser.parse() 77 78 assert ds.size() == 1 79 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE)); 80 assert p != null 81 assert p.getId() == 1 82 assert p.getVersion() == 1 83 assert p.getChangesetId() == 1 84 assert p.getTimestamp() != null 85 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.CREATED 86 assert ds.isCreated(p.getPrimitiveId()) 87 } 88 89 /** 90 * A simple changeset content document with one updated node 91 * 92 */ 93 @Test 94 public void test_OK_OneUpdatedNode() { 95 OsmChangesetContentParser parser 96 97 def String doc = """ 100 98 <osmChange version="0.6" generator="OpenStreetMap server"> 101 99 <modify> … … 104 102 </osmChange> 105 103 """ 106 107 // should be OK108 parser = new OsmChangesetContentParser(doc)109 ChangesetDataSet ds = parser.parse()110 111 assert ds.size() == 1112 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE));113 assert p != null114 assert p.getId() == 1115 assert p.getVersion() == 1116 assert p.getChangesetId() == 1117 assert p.getTimestamp() != null118 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.UPDATED119 assert ds.isUpdated(p.getPrimitiveId())120 }121 122 /**123 * A simple changeset content document with one deleted node124 * 125 */126 @Test127 public void test_OK_OneDeletedNode() {128 OsmChangesetContentParser parser129 130 def String doc = """104 105 // should be OK 106 parser = new OsmChangesetContentParser(doc) 107 ChangesetDataSet ds = parser.parse() 108 109 assert ds.size() == 1 110 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE)); 111 assert p != null 112 assert p.getId() == 1 113 assert p.getVersion() == 1 114 assert p.getChangesetId() == 1 115 assert p.getTimestamp() != null 116 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.UPDATED 117 assert ds.isUpdated(p.getPrimitiveId()) 118 } 119 120 /** 121 * A simple changeset content document with one deleted node 122 * 123 */ 124 @Test 125 public void test_OK_OneDeletedNode() { 126 OsmChangesetContentParser parser 127 128 def String doc = """ 131 129 <osmChange version="0.6" generator="OpenStreetMap server"> 132 130 <delete> … … 135 133 </osmChange> 136 134 """ 137 138 // should be OK139 parser = new OsmChangesetContentParser(doc)140 ChangesetDataSet ds = parser.parse()141 142 assert ds.size() == 1143 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE));144 assert p != null145 assert p.getId() == 1146 assert p.getVersion() == 1147 assert p.getChangesetId() == 1148 assert p.getTimestamp() != null149 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.DELETED150 assert ds.isDeleted(p.getPrimitiveId())151 }152 153 /**154 * A more complex test with a document including nodes, ways, and relations.155 * 156 */157 @Test158 public void test_OK_ComplexTestCase() {159 OsmChangesetContentParser parser160 161 def String doc = """135 136 // should be OK 137 parser = new OsmChangesetContentParser(doc) 138 ChangesetDataSet ds = parser.parse() 139 140 assert ds.size() == 1 141 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE)); 142 assert p != null 143 assert p.getId() == 1 144 assert p.getVersion() == 1 145 assert p.getChangesetId() == 1 146 assert p.getTimestamp() != null 147 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.DELETED 148 assert ds.isDeleted(p.getPrimitiveId()) 149 } 150 151 /** 152 * A more complex test with a document including nodes, ways, and relations. 153 * 154 */ 155 @Test 156 public void test_OK_ComplexTestCase() { 157 OsmChangesetContentParser parser 158 159 def String doc = """ 162 160 <osmChange version="0.6" generator="OpenStreetMap server"> 163 161 <create> 164 162 <node id="1" version="1" visible="true" changeset="1" lat="1.0" lon="1.0" timestamp="2009-12-22"> 165 <tag k="a.key" v="a.value" />166 </node>163 <tag k="a.key" v="a.value" /> 164 </node> 167 165 </create> 168 166 <modify> 169 167 <way id="2" version="2" visible="true" changeset="1" timestamp="2009-12-22"> 170 <nd ref="21"/>171 <nd ref="22"/>172 </way>168 <nd ref="21"/> 169 <nd ref="22"/> 170 </way> 173 171 </modify> 174 <delete>172 <delete> 175 173 <relation id="3" version="3" visible="true" changeset="1" timestamp="2009-12-22" /> 176 174 </delete> 177 175 </osmChange> 178 176 """ 179 180 // should be OK181 parser = new OsmChangesetContentParser(doc)182 ChangesetDataSet ds = parser.parse()183 184 assert ds.size() == 3185 186 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE));187 assert p != null188 assert p.getId() == 1189 assert p.getVersion() == 1190 assert p.getChangesetId() == 1191 assert p.getTimestamp() != null192 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.CREATED193 assert ds.isCreated(p.getPrimitiveId())194 assert p.get("a.key") == "a.value"195 196 HistoryWay w = (HistoryWay)ds.getPrimitive(new SimplePrimitiveId(2, OsmPrimitiveType.WAY));197 assert w != null198 assert w.getId() == 2199 assert w.getVersion() == 2200 assert w.getChangesetId() == 1201 assert w.getTimestamp() != null202 assert ds.getModificationType(w.getPrimitiveId()) == ChangesetModificationType.UPDATED203 assert ds.isUpdated(w.getPrimitiveId())204 assert w.getNumNodes() == 2205 assert w.getNodes() == [21,22]206 207 HistoryRelation r = (HistoryRelation)ds.getPrimitive(new SimplePrimitiveId(3, OsmPrimitiveType.RELATION));208 assert r != null209 assert r.getId() == 3210 assert r.getVersion() == 3211 assert r.getChangesetId() == 1212 assert r.getTimestamp() != null213 assert ds.getModificationType(r.getPrimitiveId()) == ChangesetModificationType.DELETED214 assert ds.isDeleted(r.getPrimitiveId())215 }177 178 // should be OK 179 parser = new OsmChangesetContentParser(doc) 180 ChangesetDataSet ds = parser.parse() 181 182 assert ds.size() == 3 183 184 HistoryOsmPrimitive p = ds.getPrimitive(new SimplePrimitiveId(1, OsmPrimitiveType.NODE)); 185 assert p != null 186 assert p.getId() == 1 187 assert p.getVersion() == 1 188 assert p.getChangesetId() == 1 189 assert p.getTimestamp() != null 190 assert ds.getModificationType(p.getPrimitiveId()) == ChangesetModificationType.CREATED 191 assert ds.isCreated(p.getPrimitiveId()) 192 assert p.get("a.key") == "a.value" 193 194 HistoryWay w = (HistoryWay)ds.getPrimitive(new SimplePrimitiveId(2, OsmPrimitiveType.WAY)); 195 assert w != null 196 assert w.getId() == 2 197 assert w.getVersion() == 2 198 assert w.getChangesetId() == 1 199 assert w.getTimestamp() != null 200 assert ds.getModificationType(w.getPrimitiveId()) == ChangesetModificationType.UPDATED 201 assert ds.isUpdated(w.getPrimitiveId()) 202 assert w.getNumNodes() == 2 203 assert w.getNodes() == [21,22] 204 205 HistoryRelation r = (HistoryRelation)ds.getPrimitive(new SimplePrimitiveId(3, OsmPrimitiveType.RELATION)); 206 assert r != null 207 assert r.getId() == 3 208 assert r.getVersion() == 3 209 assert r.getChangesetId() == 1 210 assert r.getTimestamp() != null 211 assert ds.getModificationType(r.getPrimitiveId()) == ChangesetModificationType.DELETED 212 assert ds.isDeleted(r.getPrimitiveId()) 213 } 216 214 }
Note:
See TracChangeset
for help on using the changeset viewer.
