source: josm/trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/data/PrimitiveTagTransferDataTest.java@ 17531

Last change on this file since 17531 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: 4.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.datatransfer.data;
3
4import static org.junit.jupiter.api.Assertions.assertEquals;
5import static org.junit.jupiter.api.Assertions.assertFalse;
6import static org.junit.jupiter.api.Assertions.assertTrue;
7
8import java.util.Arrays;
9import java.util.Map;
10
11import org.junit.jupiter.api.extension.RegisterExtension;
12import org.junit.jupiter.api.Test;
13import org.openstreetmap.josm.data.osm.Node;
14import org.openstreetmap.josm.data.osm.NodeData;
15import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
16import org.openstreetmap.josm.data.osm.PrimitiveData;
17import org.openstreetmap.josm.data.osm.RelationData;
18import org.openstreetmap.josm.data.osm.TagCollection;
19import org.openstreetmap.josm.data.osm.WayData;
20import org.openstreetmap.josm.testutils.JOSMTestRules;
21
22import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
23
24/**
25 * Test {@link PrimitiveTagTransferData}
26 * @author Michael Zangl
27 */
28class PrimitiveTagTransferDataTest {
29 /**
30 * Prefs only required because of the dependencies of OSM primitives.
31 */
32 @RegisterExtension
33 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
34 public JOSMTestRules test = new JOSMTestRules().preferences();
35
36 private static boolean isHeterogeneousSource(PrimitiveData... t) {
37 return new PrimitiveTagTransferData(Arrays.asList(t)).isHeterogeneousSource();
38 }
39
40 /**
41 * Test method for {@link PrimitiveTagTransferData#PrimitiveTagTransferData(PrimitiveTransferData)}.
42 */
43 @Test
44 void testPrimitiveTagTransferDataPrimitiveTransferData() {
45 PrimitiveTagTransferData data = new PrimitiveTagTransferData(PrimitiveTransferData.getData(Arrays.asList(new Node(), new Node())));
46 assertEquals(2, data.getSourcePrimitiveCount(OsmPrimitiveType.NODE));
47 assertEquals(0, data.getSourcePrimitiveCount(OsmPrimitiveType.WAY));
48 assertEquals(0, data.getSourcePrimitiveCount(OsmPrimitiveType.RELATION));
49 }
50
51 /**
52 * Test method for {@link PrimitiveTagTransferData#isHeterogeneousSource()}.
53 */
54 @Test
55 void testIsHeterogeneousSource() {
56 // 0 item
57 assertFalse(isHeterogeneousSource());
58 // 1 item
59 assertFalse(isHeterogeneousSource(new NodeData()));
60 assertFalse(isHeterogeneousSource(new WayData()));
61 assertFalse(isHeterogeneousSource(new RelationData()));
62 // 2 items of same type
63 assertFalse(isHeterogeneousSource(new NodeData(), new NodeData()));
64 assertFalse(isHeterogeneousSource(new WayData(), new WayData()));
65 assertFalse(isHeterogeneousSource(new RelationData(), new RelationData()));
66 // 2 items of different type
67 assertTrue(isHeterogeneousSource(new NodeData(), new WayData()));
68 assertTrue(isHeterogeneousSource(new NodeData(), new RelationData()));
69 assertTrue(isHeterogeneousSource(new WayData(), new RelationData()));
70 }
71
72 /**
73 * Test method for {@link PrimitiveTagTransferData#getForPrimitives(OsmPrimitiveType)}.
74 */
75 @Test
76 void testGetForPrimitives() {
77 PrimitiveTagTransferData data = createTestData();
78 TagCollection forNode = data.getForPrimitives(OsmPrimitiveType.NODE);
79 assertEquals(1, forNode.getKeys().size());
80 assertEquals(2, forNode.getValues("k").size());
81 TagCollection forWay = data.getForPrimitives(OsmPrimitiveType.WAY);
82 assertEquals(1, forWay.getKeys().size());
83 assertEquals(1, forWay.getValues("x").size());
84 TagCollection forRelation = data.getForPrimitives(OsmPrimitiveType.RELATION);
85 assertEquals(0, forRelation.getKeys().size());
86 }
87
88 private PrimitiveTagTransferData createTestData() {
89 NodeData nd1 = new NodeData();
90 nd1.put("k", "v");
91 NodeData nd2 = new NodeData();
92 nd2.put("k", "v2");
93 WayData way = new WayData();
94 way.put("x", "v");
95 return new PrimitiveTagTransferData(Arrays.asList(nd1, nd2, way));
96 }
97
98 /**
99 * Test method for {@link PrimitiveTagTransferData#getSourcePrimitiveCount(OsmPrimitiveType)}.
100 */
101 @Test
102 void testGetSourcePrimitiveCount() {
103 PrimitiveTagTransferData data = createTestData();
104 assertEquals(2, data.getSourcePrimitiveCount(OsmPrimitiveType.NODE));
105 assertEquals(1, data.getSourcePrimitiveCount(OsmPrimitiveType.WAY));
106 assertEquals(0, data.getSourcePrimitiveCount(OsmPrimitiveType.RELATION));
107 }
108
109 /**
110 * Test method for {@link PrimitiveTagTransferData#getStatistics()}.
111 */
112 @Test
113 void testGetStatistics() {
114 PrimitiveTagTransferData data = createTestData();
115 Map<OsmPrimitiveType, Integer> stats = data.getStatistics();
116 assertEquals(2, (int) stats.get(OsmPrimitiveType.NODE));
117 assertEquals(1, (int) stats.get(OsmPrimitiveType.WAY));
118 assertEquals(null, stats.get(OsmPrimitiveType.RELATION));
119 }
120}
Note: See TracBrowser for help on using the repository browser.