source: josm/trunk/test/unit/org/openstreetmap/josm/data/osm/SimplePrimitiveIdTest.java

Last change on this file was 17275, checked in by Don-vip, 3 years ago

see #16567 - upgrade almost all tests to JUnit 5, except those depending on WiremockRule

See https://github.com/tomakehurst/wiremock/issues/684

  • Property svn:eol-style set to native
File size: 5.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm;
3
4import static org.junit.jupiter.api.Assertions.assertEquals;
5import static org.junit.jupiter.api.Assertions.assertThrows;
6
7import org.junit.jupiter.api.Test;
8
9/**
10 * Unit tests of {@link SimplePrimitiveId} class.
11 */
12class SimplePrimitiveIdTest {
13
14 /**
15 * Unit test of {@link SimplePrimitiveId#fromString} for nodes.
16 */
17 @Test
18 void testFromStringNode() {
19 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.NODE), SimplePrimitiveId.fromString("node/123"));
20 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.NODE), SimplePrimitiveId.fromString("n123"));
21 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.NODE), SimplePrimitiveId.fromString("node123"));
22 assertEquals(new SimplePrimitiveId(123456789123456789L, OsmPrimitiveType.NODE), SimplePrimitiveId.fromString("n123456789123456789"));
23 }
24
25 /**
26 * Unit test of {@link SimplePrimitiveId#fromString} for ways.
27 */
28 @Test
29 void testFromStringWay() {
30 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.WAY), SimplePrimitiveId.fromString("way/123"));
31 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.WAY), SimplePrimitiveId.fromString("w123"));
32 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.WAY), SimplePrimitiveId.fromString("way123"));
33 assertEquals(new SimplePrimitiveId(123456789123456789L, OsmPrimitiveType.WAY), SimplePrimitiveId.fromString("w123456789123456789"));
34 }
35
36 /**
37 * Unit test of {@link SimplePrimitiveId#fromString} for relations.
38 */
39 @Test
40 void testFromStringRelation() {
41 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.RELATION), SimplePrimitiveId.fromString("relation/123"));
42 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.RELATION), SimplePrimitiveId.fromString("r123"));
43 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.RELATION), SimplePrimitiveId.fromString("rel123"));
44 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.RELATION), SimplePrimitiveId.fromString("relation123"));
45 }
46
47 /**
48 * Unit test of {@link SimplePrimitiveId#fromString} for invalid input.
49 */
50 @Test
51 void testFromStringBad() {
52 assertThrows(IllegalArgumentException.class, () -> SimplePrimitiveId.fromString("foobar"));
53 }
54
55 /**
56 * Unit test of {@link SimplePrimitiveId#fuzzyParse}.
57 */
58 @Test
59 void testFuzzyParse() {
60 assertEquals("[relation 123]",
61 SimplePrimitiveId.fuzzyParse("foo relation/123 bar").toString());
62 assertEquals("[relation 123, way 345, node 789]",
63 SimplePrimitiveId.fuzzyParse("foo relation/123 and way/345 but also node/789").toString());
64 assertEquals("[relation 123, relation 124, way 345, way 346, node 789]",
65 SimplePrimitiveId.fuzzyParse("foo relation/123-24 and way/345-346 but also node/789").toString());
66 assertEquals("[]",
67 SimplePrimitiveId.fuzzyParse("foo relation/0 bar").toString());
68 }
69
70 @Test
71 void testFromCopyAction() {
72 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.NODE), SimplePrimitiveId.fromString("node 123"));
73 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.WAY), SimplePrimitiveId.fromString("way 123"));
74 assertEquals(new SimplePrimitiveId(123, OsmPrimitiveType.RELATION), SimplePrimitiveId.fromString("relation 123"));
75 }
76
77 /**
78 * Unit test of {@link SimplePrimitiveId#multipleFromString}.
79 */
80 @Test
81 void testMultipleFromString() {
82 assertEquals("[node 234]", SimplePrimitiveId.multipleFromString("node/234").toString());
83 assertEquals("[node 234]", SimplePrimitiveId.multipleFromString("node/234-234").toString());
84 assertEquals("[]", SimplePrimitiveId.multipleFromString("node/2-1").toString());
85 assertEquals("[node 123, node 124]", SimplePrimitiveId.multipleFromString("node/123-124").toString());
86 assertEquals("[node 123, node 124]", SimplePrimitiveId.multipleFromString("n/123-124").toString());
87 assertEquals("[node 123, node 124, node 125, node 126]", SimplePrimitiveId.multipleFromString("node123-126").toString());
88 assertEquals("[way 123]", SimplePrimitiveId.multipleFromString("way/123-123").toString());
89 assertEquals("[way 123, way 124, way 125, way 126, way 127]", SimplePrimitiveId.multipleFromString("w/123-127").toString());
90 assertEquals("[way 123, way 124, way 125]", SimplePrimitiveId.multipleFromString("way123-125").toString());
91 assertEquals("[relation 123, relation 124, relation 125]", SimplePrimitiveId.multipleFromString("relation/123-125").toString());
92 assertEquals("[relation 123, relation 124, relation 125]", SimplePrimitiveId.multipleFromString("r/123-125").toString());
93 assertEquals("[relation 123, relation 124, relation 125]", SimplePrimitiveId.multipleFromString("relation123-125").toString());
94 assertEquals("[node 234, node 235]", SimplePrimitiveId.multipleFromString("node/234-5").toString());
95 assertEquals("[node 234, node 235]", SimplePrimitiveId.multipleFromString("node/234-35").toString());
96 assertEquals("[node 234, node 235]", SimplePrimitiveId.multipleFromString("node/234-235").toString());
97 assertEquals("[node 998, node 999, node 1000, node 1001]", SimplePrimitiveId.multipleFromString("node/998-1001").toString());
98 assertEquals("[]", SimplePrimitiveId.multipleFromString("node/0").toString());
99 }
100
101 /**
102 * Unit test of {@link SimplePrimitiveId#multipleFromString} for invalid data.
103 */
104 @Test
105 void testMultipleFromStringBad() {
106 assertThrows(IllegalArgumentException.class, () -> SimplePrimitiveId.multipleFromString("foo node123 bar"));
107 }
108}
Note: See TracBrowser for help on using the repository browser.