source: josm/trunk/test/unit/org/openstreetmap/josm/data/osm/OsmPrimitiveTest.java@ 10758

Last change on this file since 10758 was 10758, checked in by Don-vip, 8 years ago

sonar - squid:S3578 - Test methods should comply with a naming convention

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain
File size: 4.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm;
3
4import java.util.Arrays;
5import java.util.HashSet;
6
7import org.junit.Assert;
8import org.junit.BeforeClass;
9import org.junit.Test;
10import org.openstreetmap.josm.JOSMFixture;
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.data.coor.LatLon;
13import org.openstreetmap.josm.data.projection.Projections;
14
15/**
16 * Unit tests of the {@code OsmPrimitive} class.
17 */
18public class OsmPrimitiveTest {
19
20 /**
21 * Setup test.
22 */
23 @BeforeClass
24 public static void init() {
25 JOSMFixture.createUnitTestFixture().init();
26 }
27
28 private void compareReferrers(OsmPrimitive actual, OsmPrimitive... expected) {
29 Assert.assertEquals(new HashSet<>(Arrays.asList(expected)),
30 new HashSet<>(actual.getReferrers()));
31 }
32
33 private DataSet dataSet = new DataSet();
34
35 /**
36 * Setup test.
37 */
38 @BeforeClass
39 public static void setUp() {
40 Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
41 }
42
43 @Test
44 public void testSimpleReferrersTest() {
45 Node n1 = new Node(LatLon.ZERO);
46 Way w1 = new Way();
47 w1.addNode(n1);
48 dataSet.addPrimitive(n1);
49 dataSet.addPrimitive(w1);
50 compareReferrers(n1, w1);
51 }
52
53 @Test
54 public void testAddAndRemoveReferrer() {
55 Node n1 = new Node(LatLon.ZERO);
56 Node n2 = new Node(LatLon.ZERO);
57 Way w1 = new Way();
58 w1.addNode(n1);
59 w1.addNode(n2);
60 w1.addNode(n1);
61 w1.removeNode(n1);
62 dataSet.addPrimitive(n1);
63 dataSet.addPrimitive(n2);
64 dataSet.addPrimitive(w1);
65 compareReferrers(n1);
66 compareReferrers(n2, w1);
67 }
68
69 @Test
70 public void testMultipleReferrers() {
71 Node n1 = new Node(LatLon.ZERO);
72 Way w1 = new Way();
73 Way w2 = new Way();
74 Relation r1 = new Relation();
75 w1.addNode(n1);
76 w2.addNode(n1);
77 r1.addMember(new RelationMember("", n1));
78 dataSet.addPrimitive(n1);
79 dataSet.addPrimitive(w1);
80 dataSet.addPrimitive(w2);
81 dataSet.addPrimitive(r1);
82 compareReferrers(n1, w1, w2, r1);
83 }
84
85 @Test
86 public void testRemoveMemberFromRelationReferrerTest() {
87 Node n1 = new Node(LatLon.ZERO);
88 Relation r1 = new Relation();
89 r1.addMember(new RelationMember("", n1));
90 r1.addMember(new RelationMember("", n1));
91 r1.removeMember(0);
92 dataSet.addPrimitive(n1);
93 dataSet.addPrimitive(r1);
94 compareReferrers(n1, r1);
95 }
96
97 @Test
98 public void testSetRelationMemberReferrerTest() {
99 Node n1 = new Node(LatLon.ZERO);
100 Node n2 = new Node(LatLon.ZERO);
101 Relation r1 = new Relation();
102 Relation r2 = new Relation();
103 r1.addMember(new RelationMember("", n1));
104 r2.addMember(new RelationMember("", n2));
105 r2.setMember(0, r1.getMember(0));
106 dataSet.addPrimitive(n1);
107 dataSet.addPrimitive(n2);
108 dataSet.addPrimitive(r1);
109 dataSet.addPrimitive(r2);
110 compareReferrers(n1, r1, r2);
111 compareReferrers(n2);
112 }
113
114 @Test
115 public void testRemovePrimitiveReferrerTest() {
116 Node n1 = new Node(LatLon.ZERO);
117 Way w1 = new Way();
118 w1.addNode(n1);
119 w1.setDeleted(true);
120 dataSet.addPrimitive(n1);
121 compareReferrers(n1);
122 w1.setDeleted(false);
123 dataSet.addPrimitive(w1);
124
125 compareReferrers(n1, w1);
126
127 Relation r1 = new Relation();
128 r1.addMember(new RelationMember("", w1));
129 r1.setDeleted(true);
130 dataSet.addPrimitive(r1);
131 compareReferrers(w1);
132 r1.setDeleted(false);
133 compareReferrers(w1, r1);
134 }
135
136 @Test
137 public void testNodeFromMultipleDatasets() {
138 // n has two referrers - w1 and w2. But only w1 is returned because it is in the same dataset as n
139 Node n = new Node(LatLon.ZERO);
140
141 Way w1 = new Way();
142 w1.addNode(n);
143 dataSet.addPrimitive(n);
144 dataSet.addPrimitive(w1);
145 new Way(w1);
146
147 Assert.assertEquals(n.getReferrers().size(), 1);
148 Assert.assertEquals(n.getReferrers().get(0), w1);
149 }
150
151 @Test(expected = DataIntegrityProblemException.class)
152 public void testCheckMustBeInDatasate() {
153 Node n = new Node();
154 n.getReferrers();
155 }
156}
Note: See TracBrowser for help on using the repository browser.