| 184 | | testInvalidData("<osm version='0.6'><way id='1' version='1'><nd/></way></osm>", |
| 185 | | "Missing mandatory attribute 'ref' on <nd> of way 1. (at line 1, column 87). 88 bytes have been read"); |
| 186 | | testInvalidData("<osm version='0.6'><relation id='1' version='1'><member/></relation></osm>", |
| 187 | | "Missing attribute 'ref' on member in relation 1. (at line 1, column 96). 101 bytes have been read"); |
| | 184 | assertEquals("Missing mandatory attribute 'ref' on <nd> of way 1. (at line 1, column 87). 88 bytes have been read", |
| | 185 | testInvalidData("<osm version='0.6'><way id='1' version='1'><nd/></way></osm>").getMessage()); |
| | 186 | assertEquals("Missing attribute 'ref' on member in relation 1. (at line 1, column 96). 101 bytes have been read", |
| | 187 | testInvalidData("<osm version='0.6'><relation id='1' version='1'><member/></relation></osm>").getMessage()); |
| 196 | | testInvalidData("<osm version='0.6'><way id='1' version='1'><nd ref='0'/></way></osm>", |
| 197 | | "Illegal value of attribute 'ref' of element <nd>. Got 0. (at line 1, column 95). 96 bytes have been read"); |
| 198 | | testInvalidData("<osm version='0.6'><way id='1' version='1'><nd ref='nan'/></way></osm>", |
| 199 | | "Illegal long value for attribute 'ref'. Got 'nan'. (at line 1, column 97). 98 bytes have been read"); |
| 200 | | |
| 201 | | testInvalidData("<osm version='0.6'><relation id='1' version='1'><member type='node' ref='0'/></relation></osm>", |
| 202 | | "Incomplete <member> specification with ref=0 (at line 1, column 116). 121 bytes have been read"); |
| 203 | | testInvalidData("<osm version='0.6'><relation id='1' version='1'><member type='node' ref='nan'/></relation></osm>", |
| 204 | | "Illegal value for attribute 'ref' on member in relation 1. Got nan (at line 1, column 118). 123 bytes have been read"); |
| | 196 | assertEquals("Illegal value of attribute 'ref' of element <nd>. Got 0. (at line 1, column 95). 96 bytes have been read", |
| | 197 | testInvalidData("<osm version='0.6'><way id='1' version='1'><nd ref='0'/></way></osm>").getMessage()); |
| | 198 | assertEquals("Illegal long value for attribute 'ref'. Got 'nan'. (at line 1, column 97). 98 bytes have been read", |
| | 199 | testInvalidData("<osm version='0.6'><way id='1' version='1'><nd ref='nan'/></way></osm>").getMessage()); |
| | 200 | |
| | 201 | assertEquals("Incomplete <member> specification with ref=0 (at line 1, column 116). 121 bytes have been read", |
| | 202 | testInvalidData("<osm version='0.6'><relation id='1' version='1'><member type='node' ref='0'/></relation></osm>").getMessage()); |
| | 203 | assertEquals("Illegal value for attribute 'ref' on member in relation 1. Got nan (at line 1, column 118). 123 bytes have been read", |
| | 204 | testInvalidData("<osm version='0.6'><relation id='1' version='1'><member type='node' ref='nan'/></relation></osm>").getMessage()); |
| 233 | | testInvalidData("<osm version='0.6'><node id='1' version='1'><tag/></node></osm>", |
| 234 | | "Missing key or value attribute in tag. (at line 1, column 89). 89 bytes have been read"); |
| 235 | | testInvalidData("<osm version='0.6'><node id='1' version='1'><tag k='foo'/></node></osm>", |
| 236 | | "Missing key or value attribute in tag. (at line 1, column 97). 97 bytes have been read"); |
| 237 | | testInvalidData("<osm version='0.6'><node id='1' version='1'><tag v='bar'/></node></osm>", |
| 238 | | "Missing key or value attribute in tag. (at line 1, column 97). 97 bytes have been read"); |
| | 233 | assertEquals("Missing key or value attribute in tag. (at line 1, column 89). 89 bytes have been read", |
| | 234 | testInvalidData("<osm version='0.6'><node id='1' version='1'><tag/></node></osm>").getMessage()); |
| | 235 | assertEquals("Missing key or value attribute in tag. (at line 1, column 97). 97 bytes have been read", |
| | 236 | testInvalidData("<osm version='0.6'><node id='1' version='1'><tag k='foo'/></node></osm>").getMessage()); |
| | 237 | assertEquals("Missing key or value attribute in tag. (at line 1, column 97). 97 bytes have been read", |
| | 238 | testInvalidData("<osm version='0.6'><node id='1' version='1'><tag v='bar'/></node></osm>").getMessage()); |
| 247 | | testInvalidData("<osm/>", |
| 248 | | "Missing mandatory attribute 'version'. (at line 1, column 45). 44 bytes have been read"); |
| 249 | | testInvalidData("<osm version='0.6'><node id='1'/></osm>", |
| 250 | | "Missing attribute 'version' on OSM primitive with ID 1. (at line 1, column 72). 72 bytes have been read"); |
| | 247 | assertEquals("Missing mandatory attribute 'version'. (at line 1, column 45). 44 bytes have been read", |
| | 248 | testInvalidData("<osm/>").getMessage()); |
| | 249 | assertEquals("Missing attribute 'version' on OSM primitive with ID 1. (at line 1, column 72). 72 bytes have been read", |
| | 250 | testInvalidData("<osm version='0.6'><node id='1'/></osm>").getMessage()); |
| 279 | | testInvalidData("<osm version='0.6'><node id='1' version='1' changeset='nan'/></osm>", |
| 280 | | "Illegal value for attribute 'changeset'. Got nan. (at line 1, column 100). 100 bytes have been read"); |
| 281 | | testInvalidData("<osm version='0.6'><node id='1' version='1' changeset='-1'/></osm>", |
| 282 | | "Illegal value for attribute 'changeset'. Got -1. (at line 1, column 99). 99 bytes have been read"); |
| | 279 | assertEquals("Illegal value for attribute 'changeset'. Got nan. (at line 1, column 100). 100 bytes have been read", |
| | 280 | testInvalidData("<osm version='0.6'><node id='1' version='1' changeset='nan'/></osm>").getMessage()); |
| | 281 | assertEquals("Illegal value for attribute 'changeset'. Got -1. (at line 1, column 99). 99 bytes have been read", |
| | 282 | testInvalidData("<osm version='0.6'><node id='1' version='1' changeset='-1'/></osm>").getMessage()); |
| 303 | | testInvalidData("<osm version='0.6'><bounds/></osm>", |
| 304 | | "Missing mandatory attributes on element 'bounds'. " + |
| 305 | | "Got minlon='null',minlat='null',maxlon='null',maxlat='null', origin='null'. (at line 1, column 67). 72 bytes have been read"); |
| 306 | | testInvalidData("<osm version='0.6'><bounds minlon='0'/></osm>", |
| 307 | | "Missing mandatory attributes on element 'bounds'. " + |
| 308 | | "Got minlon='0',minlat='null',maxlon='null',maxlat='null', origin='null'. (at line 1, column 78). 83 bytes have been read"); |
| 309 | | testInvalidData("<osm version='0.6'><bounds minlon='0' minlat='0'/></osm>", |
| 310 | | "Missing mandatory attributes on element 'bounds'. " + |
| 311 | | "Got minlon='0',minlat='0',maxlon='null',maxlat='null', origin='null'. (at line 1, column 89). 94 bytes have been read"); |
| 312 | | testInvalidData("<osm version='0.6'><bounds minlon='0' minlat='0' maxlon='1'/></osm>", |
| 313 | | "Missing mandatory attributes on element 'bounds'. " + |
| 314 | | "Got minlon='0',minlat='0',maxlon='1',maxlat='null', origin='null'. (at line 1, column 100). 105 bytes have been read"); |
| | 303 | assertEquals("Missing mandatory attributes on element 'bounds'. " + |
| | 304 | "Got minlon='null',minlat='null',maxlon='null',maxlat='null', origin='null'. (at line 1, column 67). 72 bytes have been read", |
| | 305 | testInvalidData("<osm version='0.6'><bounds/></osm>").getMessage()); |
| | 306 | assertEquals("Missing mandatory attributes on element 'bounds'. " + |
| | 307 | "Got minlon='0',minlat='null',maxlon='null',maxlat='null', origin='null'. (at line 1, column 78). 83 bytes have been read", |
| | 308 | testInvalidData("<osm version='0.6'><bounds minlon='0'/></osm>").getMessage()); |
| | 309 | assertEquals("Missing mandatory attributes on element 'bounds'. " + |
| | 310 | "Got minlon='0',minlat='0',maxlon='null',maxlat='null', origin='null'. (at line 1, column 89). 94 bytes have been read", |
| | 311 | testInvalidData("<osm version='0.6'><bounds minlon='0' minlat='0'/></osm>").getMessage()); |
| | 312 | assertEquals("Missing mandatory attributes on element 'bounds'. " + |
| | 313 | "Got minlon='0',minlat='0',maxlon='1',maxlat='null', origin='null'. (at line 1, column 100). 105 bytes have been read", |
| | 314 | testInvalidData("<osm version='0.6'><bounds minlon='0' minlat='0' maxlon='1'/></osm>").getMessage()); |
| | 407 | |
| | 408 | @ParameterizedTest |
| | 409 | @ValueSource(strings = { |
| | 410 | "<osm version=\"0.6\"><error>Mismatch in tags key and value size</error></osm>", |
| | 411 | "<osm version=\"0.6\"><node id=\"1\" visible=\"true\" version=\"1\"><error>Mismatch in tags key and value size</error></node></osm>", |
| | 412 | "<osm version=\"0.6\"><way id=\"1\" visible=\"true\" version=\"1\"><error>Mismatch in tags key and value size</error></way></osm>", |
| | 413 | "<osm version=\"0.6\"><way id=\"1\" visible=\"true\" version=\"1\"><error>Mismatch in tags key and value size</error></way></osm>", |
| | 414 | "<osm version=\"0.6\"><relation id=\"1\" visible=\"true\" version=\"1\"><error>Mismatch in tags key and value size</error></relation></osm>" |
| | 415 | }) |
| | 416 | void testError(String testData) throws Exception { |
| | 417 | IllegalDataException illegalDataException = testInvalidData(testData); |
| | 418 | assertTrue(illegalDataException.getMessage().contains("Mismatch in tags key and value size")); |
| | 419 | } |