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

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

checkstyle: enable relevant whitespace checks and fix them

  • 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
15public class OsmPrimitiveTest {
16
17 @BeforeClass
18 public static void init() {
19 JOSMFixture.createUnitTestFixture().init();
20 }
21
22 private void compareReferrers(OsmPrimitive actual, OsmPrimitive... expected) {
23 Assert.assertEquals(new HashSet<>(Arrays.asList(expected)),
24 new HashSet<>(actual.getReferrers()));
25 }
26
27 private DataSet dataSet = new DataSet();
28
29 /**
30 * Setup test.
31 */
32 @BeforeClass
33 public static void setUp() {
34 Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
35 }
36
37 @Test
38 public void simpleReferrersTest() {
39 Node n1 = new Node(new LatLon(0.0, 0.0));
40 Way w1 = new Way();
41 w1.addNode(n1);
42 dataSet.addPrimitive(n1);
43 dataSet.addPrimitive(w1);
44 compareReferrers(n1, w1);
45 }
46
47 @Test
48 public void addAndRemoveReferrer() {
49 Node n1 = new Node(new LatLon(0.0, 0.0));
50 Node n2 = new Node(new LatLon(0.0, 0.0));
51 Way w1 = new Way();
52 w1.addNode(n1);
53 w1.addNode(n2);
54 w1.addNode(n1);
55 w1.removeNode(n1);
56 dataSet.addPrimitive(n1);
57 dataSet.addPrimitive(n2);
58 dataSet.addPrimitive(w1);
59 compareReferrers(n1);
60 compareReferrers(n2, w1);
61 }
62
63 @Test
64 public void multipleReferrers() {
65 Node n1 = new Node(new LatLon(0.0, 0.0));
66 Way w1 = new Way();
67 Way w2 = new Way();
68 Relation r1 = new Relation();
69 w1.addNode(n1);
70 w2.addNode(n1);
71 r1.addMember(new RelationMember("", n1));
72 dataSet.addPrimitive(n1);
73 dataSet.addPrimitive(w1);
74 dataSet.addPrimitive(w2);
75 dataSet.addPrimitive(r1);
76 compareReferrers(n1, w1, w2, r1);
77 }
78
79 @Test
80 public void removeMemberFromRelationReferrerTest() {
81 Node n1 = new Node(new LatLon(0, 0));
82 Relation r1 = new Relation();
83 r1.addMember(new RelationMember("", n1));
84 r1.addMember(new RelationMember("", n1));
85 r1.removeMember(0);
86 dataSet.addPrimitive(n1);
87 dataSet.addPrimitive(r1);
88 compareReferrers(n1, r1);
89 }
90
91 @Test
92 public void setRelationMemberReferrerTest() {
93 Node n1 = new Node(new LatLon(0, 0));
94 Node n2 = new Node(new LatLon(0, 0));
95 Relation r1 = new Relation();
96 Relation r2 = new Relation();
97 r1.addMember(new RelationMember("", n1));
98 r2.addMember(new RelationMember("", n2));
99 r2.setMember(0, r1.getMember(0));
100 dataSet.addPrimitive(n1);
101 dataSet.addPrimitive(n2);
102 dataSet.addPrimitive(r1);
103 dataSet.addPrimitive(r2);
104 compareReferrers(n1, r1, r2);
105 compareReferrers(n2);
106 }
107
108 @Test
109 public void removePrimitiveReferrerTest() {
110 Node n1 = new Node(new LatLon(0.0, 0.0));
111 Way w1 = new Way();
112 w1.addNode(n1);
113 w1.setDeleted(true);
114 dataSet.addPrimitive(n1);
115 compareReferrers(n1);
116 w1.setDeleted(false);
117 dataSet.addPrimitive(w1);
118
119 compareReferrers(n1, w1);
120
121 Relation r1 = new Relation();
122 r1.addMember(new RelationMember("", w1));
123 r1.setDeleted(true);
124 dataSet.addPrimitive(r1);
125 compareReferrers(w1);
126 r1.setDeleted(false);
127 compareReferrers(w1, r1);
128 }
129
130 @Test
131 public void nodeFromMultipleDatasets() {
132 // n has two referrers - w1 and w2. But only w1 is returned because it is in the same dataset as n
133 Node n = new Node(new LatLon(0.0, 0.0));
134
135 Way w1 = new Way();
136 w1.addNode(n);
137 dataSet.addPrimitive(n);
138 dataSet.addPrimitive(w1);
139 new Way(w1);
140
141 Assert.assertEquals(n.getReferrers().size(), 1);
142 Assert.assertEquals(n.getReferrers().get(0), w1);
143 }
144
145 @Test(expected = DataIntegrityProblemException.class)
146 public void checkMustBeInDatasate() {
147 Node n = new Node();
148 n.getReferrers();
149 }
150}
Note: See TracBrowser for help on using the repository browser.