source: josm/trunk/test/unit/org/openstreetmap/josm/data/osm/SimplePrimitiveIdTest.groovy @ 8496

Last change on this file since 8496 was 8496, checked in by simon04, 7 years ago

fix #11505 - Download objects: load a range of OSM objects (modified patch by windu.2b)

  • Property svn:eol-style set to native
File size: 4.2 KB
Line 
1package org.openstreetmap.josm.data.osm
2
3class SimplePrimitiveIdTest extends GroovyTestCase {
4
5    void testNode() {
6        assert SimplePrimitiveId.fromString("node/123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
7        assert SimplePrimitiveId.fromString("n123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
8        assert SimplePrimitiveId.fromString("node123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
9        assert SimplePrimitiveId.fromString("n123456789123456789") == new SimplePrimitiveId(123456789123456789, OsmPrimitiveType.NODE)
10    }
11
12    void testWay() {
13        assert SimplePrimitiveId.fromString("way/123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
14        assert SimplePrimitiveId.fromString("w123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
15        assert SimplePrimitiveId.fromString("way123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
16        assert SimplePrimitiveId.fromString("w123456789123456789") == new SimplePrimitiveId(123456789123456789, OsmPrimitiveType.WAY)
17    }
18
19    void testRelation() {
20        assert SimplePrimitiveId.fromString("relation/123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
21        assert SimplePrimitiveId.fromString("r123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
22        assert SimplePrimitiveId.fromString("rel123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
23        assert SimplePrimitiveId.fromString("relation123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
24    }
25
26    void testBad() {
27        shouldFail { SimplePrimitiveId.fromString("foobar") }
28    }
29
30    void testFuzzy() {
31        assert SimplePrimitiveId.fuzzyParse("foo relation/123 bar").toString() == "[relation 123]"
32        assert SimplePrimitiveId.fuzzyParse("foo relation/123 and way/345 but also node/789").toString() == "[relation 123, way 345, node 789]"
33        assert SimplePrimitiveId.fuzzyParse("foo relation/123-24 and way/345-346 but also node/789").toString() == "[relation 123, relation 124, way 345, way 346, node 789]"
34    }
35
36    void testFromCopyAction() {
37        assert SimplePrimitiveId.fromString("node 123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
38        assert SimplePrimitiveId.fromString("way 123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
39        assert SimplePrimitiveId.fromString("relation 123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
40    }
41
42    void testMultipleIDs() {
43        assert SimplePrimitiveId.multipleFromString("node/234").toString() == "[node 234]"
44        assert SimplePrimitiveId.multipleFromString("node/234-234").toString() == "[node 234]"
45        assert SimplePrimitiveId.multipleFromString("node/2-1").toString() == "[]"
46        assert SimplePrimitiveId.multipleFromString("node/123-124").toString() == "[node 123, node 124]"
47        assert SimplePrimitiveId.multipleFromString("n/123-124").toString() == "[node 123, node 124]"
48        assert SimplePrimitiveId.multipleFromString("node123-126").toString() == "[node 123, node 124, node 125, node 126]"
49        assert SimplePrimitiveId.multipleFromString("way/123-123").toString() == "[way 123]"
50        assert SimplePrimitiveId.multipleFromString("w/123-127").toString() == "[way 123, way 124, way 125, way 126, way 127]"
51        assert SimplePrimitiveId.multipleFromString("way123-125").toString() == "[way 123, way 124, way 125]"
52        assert SimplePrimitiveId.multipleFromString("relation/123-125").toString() == "[relation 123, relation 124, relation 125]"
53        assert SimplePrimitiveId.multipleFromString("r/123-125").toString() == "[relation 123, relation 124, relation 125]"
54        assert SimplePrimitiveId.multipleFromString("relation123-125").toString() == "[relation 123, relation 124, relation 125]"
55        assert SimplePrimitiveId.multipleFromString("node/234-5").toString() == "[node 234, node 235]"
56        assert SimplePrimitiveId.multipleFromString("node/234-35").toString() == "[node 234, node 235]"
57        assert SimplePrimitiveId.multipleFromString("node/234-235").toString() == "[node 234, node 235]"
58        assert SimplePrimitiveId.multipleFromString("node/998-1001").toString() == "[node 998, node 999, node 1000, node 1001]"
59        shouldFail { SimplePrimitiveId.multipleFromString("foo node123 bar") }
60    }
61}
Note: See TracBrowser for help on using the repository browser.