Changeset 8510 in josm for trunk/test/unit/org/openstreetmap/josm/io/OsmChangesetContentParserTest.groovy
- Timestamp:
- 2015-06-20T23:42:21+02:00 (9 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 20 21 22 23 OsmChangesetContentParser parser 24 25 // should be OK 26 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 39 40 OsmChangesetContentParser parser 41 42 43 44 45 46 47 // should be OK 48 49 50 51 // should be OK 52 53 54 55 // should be OK 56 parser = new OsmChangesetContentParser(doc) 57 parser.parse null 58 } 59 60 61 * A simple changeset content document with one created node 62 * 63 64 65 66 OsmChangesetContentParser parser 67 68 69 <osmChange version="0.6" generator="OpenStreetMap server"> 70 71 72 73 </osmChange> 74 """ 75 76 // should be OK 77 parser = new OsmChangesetContentParser(doc) 78 79 80 assert ds.size() == 1 81 82 83 84 85 86 87 88 89 90 91 92 * A simple changeset content document with one updated node 93 * 94 95 96 97 OsmChangesetContentParser parser 98 99 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 OK 108 parser = new OsmChangesetContentParser(doc) 109 110 111 assert ds.size() == 1 112 113 114 115 116 117 118 119 120 121 122 123 * A simple changeset content document with one deleted node 124 * 125 126 127 128 OsmChangesetContentParser parser 129 130 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 OK 139 parser = new OsmChangesetContentParser(doc) 140 141 142 assert ds.size() == 1 143 144 145 146 147 148 149 150 151 152 153 154 * A more complex test with a document including nodes, ways, and relations. 155 * 156 157 158 159 OsmChangesetContentParser parser 160 161 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 166 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 171 172 168 <nd ref="21"/> 169 <nd ref="22"/> 170 </way> 173 171 </modify> 174 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 OK 181 parser = new OsmChangesetContentParser(doc) 182 183 184 assert ds.size() == 3 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 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.