source: josm/trunk/test/unit/org/openstreetmap/josm/io/ParseWithChangesetReaderTest.groovy@ 14019

Last change on this file since 14019 was 14019, checked in by Don-vip, 8 years ago

update to Groovy 2.5.0 and Eclipse Photon (4.8.0)

  • Property svn:eol-style set to native
File size: 5.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3
4import static groovy.test.GroovyAssert.shouldFail
5import static org.junit.Assert.*
6
7import java.nio.charset.StandardCharsets
8
9import org.junit.Test
10import org.openstreetmap.josm.data.osm.DataSet
11import org.openstreetmap.josm.data.osm.Node
12import org.openstreetmap.josm.data.osm.OsmPrimitiveType
13
14class ParseWithChangesetReaderTest {
15
16 private DataSet getDataSet(String doc) {
17 InputStream is = new ByteArrayInputStream(doc.getBytes(StandardCharsets.UTF_8))
18 DataSet ds = new OsmReader().parseDataSet(is, null)
19 is.close()
20 return ds
21 }
22
23 /**
24 * A new node with a changeset id. Ignore it.
25 */
26 @Test
27 public void test_1() {
28 String doc = """\
29 <osm version="0.6">
30 <node id="-1" lat="0.0" lon="0.0" changeset="1">
31 <tag k="external-id" v="-1"/>
32 </node>
33 </osm>
34 """
35
36 DataSet ds = getDataSet(doc)
37 Node n = ds.nodes.find {it.get("external-id") == "-1"}
38 assert n != null
39 assert n.changesetId == 0
40 }
41
42 /**
43 * A new node with an invalid changeset id. Ignore it.
44 */
45 @Test
46 public void test_11() {
47 String doc = """\
48 <osm version="0.6">
49 <node id="-1" lat="0.0" lon="0.0" changeset="0">
50 <tag k="external-id" v="-1"/>
51 </node>
52 </osm>
53 """
54
55 DataSet ds = getDataSet(doc)
56 Node n = ds.nodes.find {it.get("external-id") == "-1"}
57 assert n != null
58 assert n.changesetId == 0
59 }
60
61 /**
62 * A new node with an invalid changeset id. Ignore it.
63 */
64 @Test
65 public void test_12() {
66 String doc = """\
67 <osm version="0.6">
68 <node id="-1" lat="0.0" lon="0.0" changeset="-1">
69 <tag k="external-id" v="-1"/>
70 </node>
71 </osm>
72 """
73
74 DataSet ds = getDataSet(doc)
75 Node n = ds.nodes.find {it.get("external-id") == "-1"}
76 assert n != null
77 assert n.changesetId == 0
78 }
79
80 /**
81 * A new node with an invalid changeset id. Ignore it.
82 */
83 @Test
84 public void test_13() {
85 String doc = """\
86 <osm version="0.6">
87 <node id="-1" lat="0.0" lon="0.0" changeset="aaa">
88 <tag k="external-id" v="-1"/>
89 </node>
90 </osm>
91 """
92
93 DataSet ds = getDataSet(doc)
94 Node n = ds.nodes.find {it.get("external-id") == "-1"}
95 assert n != null
96 assert n.changesetId == 0
97 }
98
99 /**
100 * A new node with a missing changeset id. That's fine. The changeset id
101 * is reset to 0.
102 */
103 @Test
104 public void test_14() {
105 String doc = """\
106 <osm version="0.6">
107 <node id="-1" lat="0.0" lon="0.0" >
108 <tag k="external-id" v="-1"/>
109 </node>
110 </osm>
111 """
112
113 DataSet ds = getDataSet(doc)
114 Node n = ds.nodes.find {it.get("external-id") == "-1"}
115 assert n != null
116 assert n.changesetId == 0
117 }
118
119
120 /**
121 * An existing node with a missing changeset id. That's fine. The changeset id
122 * is reset to 0.
123 */
124 @Test
125 public void test_2() {
126 String doc = """\
127 <osm version="0.6">
128 <node id="1" lat="0.0" lon="0.0" version="1"/>
129 </osm>
130 """
131
132 DataSet ds = getDataSet(doc)
133 Node n = ds.getPrimitiveById(1, OsmPrimitiveType.NODE)
134 assert n != null
135 assert n.uniqueId == 1
136 assert n.changesetId == 0
137 }
138
139 /**
140 * An existing node with a valid changeset id id. That's fine. The changeset id
141 * is applied.
142 */
143 @Test
144 public void test_3() {
145 String doc = """\
146 <osm version="0.6">
147 <node id="1" lat="0.0" lon="0.0" version="1" changeset="4"/>
148 </osm>
149 """
150
151 DataSet ds = getDataSet(doc)
152 Node n = ds.getPrimitiveById(1, OsmPrimitiveType.NODE)
153 assert n != null
154 assert n.uniqueId == 1
155 assert n.changesetId == 4
156 }
157
158 /**
159 * An existing node with an invalid changeset id. That's a problem. An exception
160 * is thrown.
161 */
162 @Test
163 public void test_4() {
164 String doc = """\
165 <osm version="0.6">
166 <node id="1" lat="0.0" lon="0.0" version="1" changeset="-1"/>
167 </osm>
168 """
169
170 shouldFail(IllegalDataException) {
171 DataSet ds = getDataSet(doc)
172 }
173 }
174 /**
175 * An existing node with an invalid changeset id. That's a problem. An exception
176 * is thrown.
177 */
178 @Test
179 public void test_5() {
180 String doc = """\
181 <osm version="0.6">
182 <node id="1" lat="0.0" lon="0.0" version="1" changeset="0"/>
183 </osm>
184 """
185
186 shouldFail(IllegalDataException) {
187 DataSet ds = getDataSet(doc)
188 }
189 }
190 /**
191 * An existing node with an invalid changeset id. That's a problem. An exception
192 * is thrown.
193 */
194 @Test
195 public void test_6() {
196 String doc = """\
197 <osm version="0.6">
198 <node id="1" lat="0.0" lon="0.0" version="1" changeset="abc"/>
199 </osm>
200 """
201
202 shouldFail(IllegalDataException) {
203 DataSet ds = getDataSet(doc)
204 }
205 }
206}
Note: See TracBrowser for help on using the repository browser.