source: josm/trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTypeTest.java@ 18690

Last change on this file since 18690 was 18690, checked in by taylor.smock, 14 months ago

See #16567: Convert all assertion calls to JUnit 5 (patch by gaben, modified)

The modifications are as follows:

  • Merge DomainValidatorTest.testIDN and DomainValidatorTest.testIDNJava6OrLater
  • Update some tests to use @ParameterizedTest (DomainValidatorTest)
  • Replace various exception blocks with assertThrows. These typically looked like
        try {
            // Something that should throw an exception here
            fail("An exception should have been thrown");
        } catch (Exception e) {
            // Verify the exception matches expectations here
        }
    
  • Replace assertTrue(val instanceof Clazz) with assertInstanceOf
  • Replace JUnit 4 @Suite with JUnit 5 @Suite

Both the original patch and the modified patch fix various lint issues.

File size: 6.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.assertInstanceOf;
6import static org.junit.jupiter.api.Assertions.assertNull;
7import static org.junit.jupiter.api.Assertions.assertSame;
8import static org.junit.jupiter.api.Assertions.assertTrue;
9import static org.junit.jupiter.api.Assertions.assertThrows;
10
11import java.util.Collection;
12
13import org.junit.jupiter.api.Test;
14import org.junit.jupiter.api.extension.RegisterExtension;
15import org.openstreetmap.josm.TestUtils;
16import org.openstreetmap.josm.testutils.JOSMTestRules;
17
18import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
19
20/**
21 * Unit tests of the {@code OsmPrimitiveType} class.
22 */
23class OsmPrimitiveTypeTest {
24
25 /**
26 * Setup test.
27 */
28 @RegisterExtension
29 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
30 public JOSMTestRules test = new JOSMTestRules();
31
32 /**
33 * Unit test of {@link OsmPrimitiveType} enum.
34 */
35 @Test
36 void testEnum() {
37 TestUtils.superficialEnumCodeCoverage(OsmPrimitiveType.class);
38 }
39
40 /**
41 * Unit test of {@link OsmPrimitiveType#getAPIName} method.
42 */
43 @Test
44 void testGetApiName() {
45 assertEquals("node", OsmPrimitiveType.NODE.getAPIName());
46 assertEquals("way", OsmPrimitiveType.WAY.getAPIName());
47 assertEquals("relation", OsmPrimitiveType.RELATION.getAPIName());
48 }
49
50 /**
51 * Unit test of {@link OsmPrimitiveType#getOsmClass} method.
52 */
53 @Test
54 void testGetOsmClass() {
55 assertSame(Node.class, OsmPrimitiveType.NODE.getOsmClass());
56 assertSame(Way.class, OsmPrimitiveType.WAY.getOsmClass());
57 assertSame(Relation.class, OsmPrimitiveType.RELATION.getOsmClass());
58 assertNull(OsmPrimitiveType.CLOSEDWAY.getOsmClass());
59 assertNull(OsmPrimitiveType.MULTIPOLYGON.getOsmClass());
60 }
61
62 /**
63 * Unit test of {@link OsmPrimitiveType#getDataClass} method.
64 */
65 @Test
66 void testGetDataClass() {
67 assertSame(NodeData.class, OsmPrimitiveType.NODE.getDataClass());
68 assertSame(WayData.class, OsmPrimitiveType.WAY.getDataClass());
69 assertSame(RelationData.class, OsmPrimitiveType.RELATION.getDataClass());
70 assertSame(WayData.class, OsmPrimitiveType.CLOSEDWAY.getDataClass());
71 assertSame(RelationData.class, OsmPrimitiveType.MULTIPOLYGON.getDataClass());
72 }
73
74 /**
75 * Unit test of {@link OsmPrimitiveType#fromApiTypeName} method.
76 */
77 @Test
78 void testFromApiTypeName() {
79 assertEquals(OsmPrimitiveType.NODE, OsmPrimitiveType.fromApiTypeName("node"));
80 assertEquals(OsmPrimitiveType.WAY, OsmPrimitiveType.fromApiTypeName("way"));
81 assertEquals(OsmPrimitiveType.RELATION, OsmPrimitiveType.fromApiTypeName("relation"));
82 }
83
84 /**
85 * Unit test of {@link OsmPrimitiveType#fromApiTypeName} method - error case.
86 */
87 @Test
88 void testFromApiTypeNameError() {
89 assertThrows(IllegalArgumentException.class, () -> OsmPrimitiveType.fromApiTypeName("foo"));
90 }
91
92 /**
93 * Unit test of {@link OsmPrimitiveType#from(IPrimitive)} method.
94 */
95 @Test
96 void testFromIPrimitive() {
97 assertEquals(OsmPrimitiveType.NODE, OsmPrimitiveType.from(new Node()));
98 assertEquals(OsmPrimitiveType.WAY, OsmPrimitiveType.from(new Way()));
99 assertEquals(OsmPrimitiveType.RELATION, OsmPrimitiveType.from(new Relation()));
100 }
101
102 /**
103 * Unit test of {@link OsmPrimitiveType#from(IPrimitive)} method - error case.
104 */
105 @Test
106 void testFromIPrimitiveError() {
107 assertThrows(IllegalArgumentException.class, () -> OsmPrimitiveType.from((IPrimitive) null));
108 }
109
110 /**
111 * Unit test of {@link OsmPrimitiveType#from(String)} method.
112 */
113 @Test
114 void testFromString() {
115 assertEquals(OsmPrimitiveType.NODE, OsmPrimitiveType.from("node"));
116 assertEquals(OsmPrimitiveType.WAY, OsmPrimitiveType.from("WAY"));
117 assertEquals(OsmPrimitiveType.RELATION, OsmPrimitiveType.from("Relation"));
118 assertEquals(OsmPrimitiveType.CLOSEDWAY, OsmPrimitiveType.from("closedway"));
119 assertEquals(OsmPrimitiveType.MULTIPOLYGON, OsmPrimitiveType.from("multipolygon"));
120 assertNull(OsmPrimitiveType.from((String) null));
121 }
122
123 /**
124 * Unit test of {@link OsmPrimitiveType#dataValues} method.
125 */
126 @Test
127 void testDataValues() {
128 Collection<OsmPrimitiveType> values = OsmPrimitiveType.dataValues();
129 assertEquals(3, values.size());
130 assertTrue(values.contains(OsmPrimitiveType.NODE));
131 assertTrue(values.contains(OsmPrimitiveType.WAY));
132 assertTrue(values.contains(OsmPrimitiveType.RELATION));
133 }
134
135 /**
136 * Unit test of {@link OsmPrimitiveType#newInstance} method.
137 */
138 @Test
139 void testNewInstance() {
140 OsmPrimitive n = OsmPrimitiveType.NODE.newInstance(1, false);
141 OsmPrimitive w = OsmPrimitiveType.WAY.newInstance(2, false);
142 OsmPrimitive r = OsmPrimitiveType.RELATION.newInstance(3, false);
143
144 assertInstanceOf(Node.class, n);
145 assertInstanceOf(Way.class, w);
146 assertInstanceOf(Relation.class, r);
147
148 assertEquals(1, n.getId());
149 assertEquals(2, w.getId());
150 assertEquals(3, r.getId());
151 }
152
153 /**
154 * Unit test of {@link OsmPrimitiveType#newInstance} method - error case.
155 */
156 @Test
157 void testNewInstanceError() {
158 assertThrows(AssertionError.class, () -> OsmPrimitiveType.CLOSEDWAY.newInstance(1, false));
159 }
160
161 /**
162 * Unit test of {@link OsmPrimitiveType#newVersionedInstance} method.
163 */
164 @Test
165 void testNewVersionedInstance() {
166 OsmPrimitive n = OsmPrimitiveType.NODE.newVersionedInstance(1, 4);
167 OsmPrimitive w = OsmPrimitiveType.WAY.newVersionedInstance(2, 5);
168 OsmPrimitive r = OsmPrimitiveType.RELATION.newVersionedInstance(3, 6);
169
170 assertInstanceOf(Node.class, n);
171 assertInstanceOf(Way.class, w);
172 assertInstanceOf(Relation.class, r);
173
174 assertEquals(1, n.getId());
175 assertEquals(2, w.getId());
176 assertEquals(3, r.getId());
177
178 assertEquals(4, n.getVersion());
179 assertEquals(5, w.getVersion());
180 assertEquals(6, r.getVersion());
181 }
182
183 /**
184 * Unit test of {@link OsmPrimitiveType#newVersionedInstance} method - error case.
185 */
186 @Test
187 void testNewVersionedInstanceError() {
188 assertThrows(AssertionError.class, () -> OsmPrimitiveType.CLOSEDWAY.newVersionedInstance(1, 0));
189 }
190}
Note: See TracBrowser for help on using the repository browser.