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

Last change on this file since 2407 was 2407, checked in by jttt, 14 years ago

Added support for referrers

  • Property svn:mime-type set to text/plain
File size: 3.0 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.Test;
9
10public class OsmPrimitiveTest {
11
12 private void compareReferrers(OsmPrimitive actual, OsmPrimitive... expected) {
13 Assert.assertEquals(new HashSet<OsmPrimitive>(Arrays.asList(expected)),
14 new HashSet<OsmPrimitive>(actual.getReferrers()));
15 }
16
17 private DataSet dataSet = new DataSet();
18
19 @Test
20 public void simpleReferrersTest() {
21 Node n1 = new Node();
22 Way w1 = new Way();
23 w1.addNode(n1);
24 dataSet.addPrimitive(n1);
25 dataSet.addPrimitive(w1);
26 compareReferrers(n1, w1);
27 }
28
29 @Test
30 public void addAndRemoveReferrer() {
31 Node n1 = new Node();
32 Node n2 = new Node();
33 Way w1 = new Way();
34 w1.addNode(n1);
35 w1.addNode(n2);
36 w1.addNode(n1);
37 w1.removeNode(n1);
38 dataSet.addPrimitive(n1);
39 dataSet.addPrimitive(n2);
40 dataSet.addPrimitive(w1);
41 compareReferrers(n1);
42 compareReferrers(n2, w1);
43 }
44
45 @Test
46 public void multipleReferrers() {
47 Node n1 = new Node();
48 Way w1 = new Way();
49 Way w2 = new Way();
50 Relation r1 = new Relation();
51 w1.addNode(n1);
52 w2.addNode(n1);
53 r1.addMember(new RelationMember("", n1));
54 dataSet.addPrimitive(n1);
55 dataSet.addPrimitive(w1);
56 dataSet.addPrimitive(w2);
57 dataSet.addPrimitive(r1);
58 compareReferrers(n1, w1, w2, r1);
59 }
60
61 @Test
62 public void removeMemberFromRelationReferrerTest() {
63 Node n1 = new Node();
64 Relation r1 = new Relation();
65 r1.addMember(new RelationMember("", n1));
66 r1.addMember(new RelationMember("", n1));
67 r1.removeMember(0);
68 dataSet.addPrimitive(n1);
69 dataSet.addPrimitive(r1);
70 compareReferrers(n1, r1);
71 }
72
73 @Test
74 public void setRelationMemberReferrerTest() {
75 Node n1 = new Node();
76 Node n2 = new Node();
77 Relation r1 = new Relation();
78 Relation r2 = new Relation();
79 r1.addMember(new RelationMember("", n1));
80 r2.addMember(new RelationMember("", n2));
81 r2.setMember(0, r1.getMember(0));
82 dataSet.addPrimitive(n1);
83 dataSet.addPrimitive(n2);
84 dataSet.addPrimitive(r1);
85 dataSet.addPrimitive(r2);
86 compareReferrers(n1, r1, r2);
87 compareReferrers(n2);
88 }
89
90 @Test
91 public void removePrimitiveReferrerTest() {
92 Node n1 = new Node();
93 Way w1 = new Way();
94 w1.addNode(n1);
95 w1.setDeleted(true);
96 dataSet.addPrimitive(n1);
97 compareReferrers(n1);
98 w1.setDeleted(false);
99 dataSet.addPrimitive(w1);
100
101 compareReferrers(n1, w1);
102
103 Relation r1 = new Relation();
104 r1.addMember(new RelationMember("", w1));
105 r1.setDeleted(true);
106 dataSet.addPrimitive(r1);
107 compareReferrers(w1);
108 r1.setDeleted(false);
109 compareReferrers(w1, r1);
110 }
111
112}
Note: See TracBrowser for help on using the repository browser.