[1890] | 1 | // License: GPL. For details, see LICENSE file.
|
---|
| 2 | package org.openstreetmap.josm.data.osm.visitor;
|
---|
| 3 |
|
---|
[1926] | 4 | import static org.junit.Assert.assertEquals;
|
---|
| 5 | import static org.junit.Assert.assertNotNull;
|
---|
| 6 | import static org.junit.Assert.assertNull;
|
---|
| 7 | import static org.junit.Assert.assertTrue;
|
---|
| 8 |
|
---|
[1890] | 9 | import java.util.Collection;
|
---|
| 10 |
|
---|
[3284] | 11 | import org.junit.BeforeClass;
|
---|
[1890] | 12 | import org.junit.Test;
|
---|
[3284] | 13 | import org.openstreetmap.josm.Main;
|
---|
[1890] | 14 | import org.openstreetmap.josm.data.coor.LatLon;
|
---|
| 15 | import org.openstreetmap.josm.data.osm.DataSet;
|
---|
| 16 | import org.openstreetmap.josm.data.osm.Node;
|
---|
| 17 | import org.openstreetmap.josm.data.osm.OsmPrimitive;
|
---|
[2077] | 18 | import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
|
---|
[1890] | 19 | import org.openstreetmap.josm.data.osm.Relation;
|
---|
| 20 | import org.openstreetmap.josm.data.osm.RelationMember;
|
---|
| 21 | import org.openstreetmap.josm.data.osm.Way;
|
---|
[3284] | 22 | import org.openstreetmap.josm.data.projection.Mercator;
|
---|
[1890] | 23 |
|
---|
| 24 | public class MergeSourceBuildingVisitorTest {
|
---|
| 25 |
|
---|
| 26 | protected OsmPrimitive lookupByName(Collection<? extends OsmPrimitive> primitives, String name) {
|
---|
| 27 | if (primitives == null) return null;
|
---|
| 28 | if (name == null) return null;
|
---|
| 29 | for (OsmPrimitive primitive: primitives) {
|
---|
| 30 | if (name.equals(primitive.get("name")))
|
---|
| 31 | return primitive;
|
---|
| 32 | }
|
---|
| 33 | return null;
|
---|
| 34 | }
|
---|
| 35 |
|
---|
[3284] | 36 | @BeforeClass
|
---|
| 37 | public static void setUp() {
|
---|
| 38 | Main.proj = new Mercator();
|
---|
| 39 | }
|
---|
| 40 |
|
---|
[1890] | 41 | @Test
|
---|
| 42 | public void test_Nodes() {
|
---|
| 43 | DataSet source = new DataSet();
|
---|
| 44 | Node n1 = new Node(1);
|
---|
| 45 | Node n2 = new Node(new LatLon(10.0,10.0));
|
---|
| 46 | n2.put("name","n2");
|
---|
| 47 | Node n3 = new Node(3);
|
---|
| 48 | Node n4 = new Node(new LatLon(20.0,20.0));
|
---|
| 49 | n4.put("name","n4");
|
---|
[2381] | 50 | source.addPrimitive(n1);
|
---|
| 51 | source.addPrimitive(n2);
|
---|
| 52 | source.addPrimitive(n3);
|
---|
| 53 | source.addPrimitive(n4);
|
---|
[1890] | 54 | source.setSelected(n1,n2);
|
---|
| 55 |
|
---|
| 56 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 57 | DataSet hull = builder.build();
|
---|
| 58 | assertNotNull(hull);
|
---|
[2381] | 59 | assertEquals(2, hull.getNodes().size());
|
---|
[1890] | 60 |
|
---|
[2077] | 61 | OsmPrimitive p = hull.getPrimitiveById(1,OsmPrimitiveType.NODE);
|
---|
[1890] | 62 | assertNotNull(p);
|
---|
| 63 | assertEquals(p.getClass(), Node.class);
|
---|
| 64 |
|
---|
[2077] | 65 | p = hull.getPrimitiveById(3,OsmPrimitiveType.NODE);
|
---|
[1890] | 66 | assertNull(p);
|
---|
| 67 |
|
---|
[2381] | 68 | p = lookupByName(hull.getNodes(), "n2");
|
---|
[1890] | 69 | assertNotNull(p);
|
---|
| 70 |
|
---|
[2381] | 71 | p = lookupByName(hull.getNodes(), "n4");
|
---|
[1890] | 72 | assertNull(p);
|
---|
| 73 | }
|
---|
| 74 |
|
---|
| 75 |
|
---|
| 76 | @Test
|
---|
| 77 | public void test_OneWay() {
|
---|
| 78 | DataSet source = new DataSet();
|
---|
| 79 | Node n1 = new Node(1);
|
---|
| 80 | Node n2 = new Node(2);
|
---|
[2620] | 81 | Way w1 = new Way(3, 1);
|
---|
[1910] | 82 | w1.addNode(n1);
|
---|
| 83 | w1.addNode(n2);
|
---|
[2381] | 84 | source.addPrimitive(n1);
|
---|
| 85 | source.addPrimitive(n2);
|
---|
| 86 | source.addPrimitive(w1);
|
---|
[1890] | 87 | source.setSelected(w1);
|
---|
| 88 |
|
---|
| 89 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 90 | DataSet hull = builder.build();
|
---|
| 91 | assertNotNull(hull);
|
---|
[2381] | 92 | assertEquals(1, hull.getWays().size());
|
---|
| 93 | assertEquals(2, hull.getNodes().size());
|
---|
[1890] | 94 |
|
---|
[2077] | 95 | OsmPrimitive p = hull.getPrimitiveById(1,OsmPrimitiveType.NODE);
|
---|
[1890] | 96 | assertNotNull(p);
|
---|
| 97 | assertEquals(p.getClass(), Node.class);
|
---|
| 98 |
|
---|
[2077] | 99 | p = hull.getPrimitiveById(2,OsmPrimitiveType.NODE);
|
---|
[1890] | 100 | assertNotNull(p);
|
---|
| 101 | assertEquals(p.getClass(), Node.class);
|
---|
| 102 |
|
---|
[2077] | 103 | p = hull.getPrimitiveById(3, OsmPrimitiveType.WAY);
|
---|
[1890] | 104 | assertNotNull(p);
|
---|
| 105 | assertEquals(p.getClass(), Way.class);
|
---|
| 106 | }
|
---|
| 107 |
|
---|
| 108 | @Test
|
---|
| 109 | public void test_OneWay_NodesSelectedToo() {
|
---|
| 110 | DataSet source = new DataSet();
|
---|
| 111 | Node n1 = new Node(1);
|
---|
| 112 | Node n2 = new Node(2);
|
---|
[2620] | 113 | Way w1 = new Way(3, 1);
|
---|
[1910] | 114 | w1.addNode(n1);
|
---|
| 115 | w1.addNode(n2);
|
---|
[2381] | 116 | source.addPrimitive(n1);
|
---|
| 117 | source.addPrimitive(n2);
|
---|
| 118 | source.addPrimitive(w1);
|
---|
[1890] | 119 | source.setSelected(w1,n1,n2);
|
---|
| 120 |
|
---|
| 121 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 122 | DataSet hull = builder.build();
|
---|
| 123 | assertNotNull(hull);
|
---|
[2381] | 124 | assertEquals(1, hull.getWays().size());
|
---|
| 125 | assertEquals(2, hull.getNodes().size());
|
---|
[1890] | 126 |
|
---|
[2077] | 127 | OsmPrimitive p = hull.getPrimitiveById(1,OsmPrimitiveType.NODE);
|
---|
[1890] | 128 | assertNotNull(p);
|
---|
| 129 | assertEquals(p.getClass(), Node.class);
|
---|
| 130 |
|
---|
[2077] | 131 | p = hull.getPrimitiveById(2, OsmPrimitiveType.NODE);
|
---|
[1890] | 132 | assertNotNull(p);
|
---|
| 133 | assertEquals(p.getClass(), Node.class);
|
---|
| 134 |
|
---|
[2077] | 135 | p = hull.getPrimitiveById(3,OsmPrimitiveType.WAY);
|
---|
[1890] | 136 | assertNotNull(p);
|
---|
| 137 | assertEquals(p.getClass(), Way.class);
|
---|
| 138 | }
|
---|
| 139 |
|
---|
| 140 | @Test
|
---|
| 141 | public void test_OneWay_Incomplete() {
|
---|
| 142 | DataSet source = new DataSet();
|
---|
| 143 | Way w1 = new Way(3);
|
---|
[2381] | 144 | source.addPrimitive(w1);
|
---|
[1890] | 145 | source.setSelected(w1);
|
---|
| 146 |
|
---|
| 147 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 148 | DataSet hull = builder.build();
|
---|
| 149 | assertNotNull(hull);
|
---|
[2381] | 150 | assertEquals(1, hull.getWays().size());
|
---|
[1890] | 151 |
|
---|
[2077] | 152 | OsmPrimitive p = hull.getPrimitiveById(3, OsmPrimitiveType.WAY);
|
---|
[1890] | 153 | assertNotNull(p);
|
---|
| 154 | assertEquals(p.getClass(), Way.class);
|
---|
[2578] | 155 | assertTrue(p.isIncomplete());
|
---|
[1890] | 156 | }
|
---|
| 157 |
|
---|
| 158 | @Test
|
---|
| 159 | public void test_OneRelation_ExistingMembersSelected() {
|
---|
| 160 | DataSet source = new DataSet();
|
---|
[3025] | 161 | Relation r1 = new Relation(1, 1);
|
---|
[2620] | 162 | Node n20 = new Node(20, 1);
|
---|
[3025] | 163 | n20.setCoor(new LatLon(0, 0));
|
---|
[1951] | 164 | r1.addMember(new RelationMember("node-20",n20));
|
---|
[2620] | 165 | Way w30 = new Way(30, 1);
|
---|
[3025] | 166 | Node n21 = new Node(21);
|
---|
| 167 | w30.addNode(n21);
|
---|
| 168 | Node n22 = new Node(22);
|
---|
| 169 | w30.addNode(n22);
|
---|
[1951] | 170 | r1.addMember(new RelationMember("way-30",w30));
|
---|
[1890] | 171 | Relation r40 = new Relation(40);
|
---|
[1951] | 172 | r1.addMember(new RelationMember("relation-40", r40));
|
---|
[2381] | 173 | source.addPrimitive(n20);
|
---|
| 174 | source.addPrimitive(n21);
|
---|
| 175 | source.addPrimitive(n22);
|
---|
| 176 | source.addPrimitive(w30);
|
---|
[3025] | 177 | source.addPrimitive(r40);
|
---|
[2381] | 178 | source.addPrimitive(r1);
|
---|
[1890] | 179 | source.setSelected(r1,n20,w30,r40);
|
---|
| 180 |
|
---|
| 181 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 182 | DataSet hull = builder.build();
|
---|
| 183 | assertNotNull(hull);
|
---|
[2381] | 184 | assertEquals(1, hull.getWays().size());
|
---|
| 185 | assertEquals(3, hull.getNodes().size());
|
---|
| 186 | assertEquals(2, hull.getRelations().size());
|
---|
[1890] | 187 |
|
---|
[2077] | 188 | OsmPrimitive p = hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
|
---|
[1890] | 189 | assertNotNull(p);
|
---|
| 190 | assertEquals(p.getClass(), Relation.class);
|
---|
| 191 |
|
---|
[2077] | 192 | Way w = (Way)hull.getPrimitiveById(30,OsmPrimitiveType.WAY);
|
---|
[1890] | 193 | assertNotNull(w);
|
---|
[1910] | 194 | assertEquals(2, w.getNodesCount());
|
---|
[2077] | 195 | Node n = (Node)hull.getPrimitiveById(21, OsmPrimitiveType.NODE);
|
---|
[1890] | 196 | assertNotNull(n);
|
---|
[1912] | 197 | assertTrue(w.containsNode(n));
|
---|
[1890] | 198 |
|
---|
[2077] | 199 | n = (Node)hull.getPrimitiveById(22,OsmPrimitiveType.NODE);
|
---|
[1890] | 200 | assertNotNull(n);
|
---|
[1912] | 201 | assertTrue(w.containsNode(n));
|
---|
[1890] | 202 |
|
---|
[2077] | 203 | Relation r = (Relation)hull.getPrimitiveById(40,OsmPrimitiveType.RELATION);
|
---|
[1890] | 204 | assertNotNull(r);
|
---|
| 205 |
|
---|
[2077] | 206 | r = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
|
---|
[1890] | 207 | assertNotNull(r);
|
---|
[1926] | 208 | assertEquals(3, r.getMembersCount());
|
---|
[2077] | 209 | RelationMember m = new RelationMember("node-20", hull.getPrimitiveById(20,OsmPrimitiveType.NODE));
|
---|
[1951] | 210 | assertTrue(r.getMembers().contains(m));
|
---|
[2077] | 211 | m = new RelationMember("way-30", hull.getPrimitiveById(30, OsmPrimitiveType.WAY));
|
---|
[1951] | 212 | assertTrue(r.getMembers().contains(m));
|
---|
[2077] | 213 | m = new RelationMember("relation-40", hull.getPrimitiveById(40, OsmPrimitiveType.RELATION));
|
---|
[1951] | 214 | assertTrue(r.getMembers().contains(m));
|
---|
[1890] | 215 | }
|
---|
| 216 |
|
---|
| 217 | @Test
|
---|
| 218 | public void test_OneRelation_ExistingMembersNotSelected() {
|
---|
| 219 | DataSet source = new DataSet();
|
---|
[3025] | 220 | Relation r1 = new Relation(1, 1);
|
---|
[1890] | 221 | Node n20 = new Node(20);
|
---|
[1951] | 222 | r1.addMember(new RelationMember("node-20",n20));
|
---|
[2620] | 223 | Way w30 = new Way(30, 1);
|
---|
[1890] | 224 | Node n21;
|
---|
[1910] | 225 | w30.addNode(n21 = new Node(21));
|
---|
[1890] | 226 | Node n22;
|
---|
[1910] | 227 | w30.addNode(n22 = new Node(22));
|
---|
[1951] | 228 | r1.addMember(new RelationMember("way-30",w30));
|
---|
[1890] | 229 | Relation r40 = new Relation(40);
|
---|
[1951] | 230 | r1.addMember(new RelationMember("relation-40", r40));
|
---|
[2381] | 231 | source.addPrimitive(n20);
|
---|
| 232 | source.addPrimitive(n21);
|
---|
| 233 | source.addPrimitive(n22);
|
---|
| 234 | source.addPrimitive(w30);
|
---|
[3025] | 235 | source.addPrimitive(r40);
|
---|
[2381] | 236 | source.addPrimitive(r1);
|
---|
[1890] | 237 | source.setSelected(r1);
|
---|
| 238 |
|
---|
| 239 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 240 | DataSet hull = builder.build();
|
---|
| 241 | assertNotNull(hull);
|
---|
[2381] | 242 | assertEquals(1, hull.getWays().size());
|
---|
| 243 | assertEquals(1, hull.getNodes().size());
|
---|
| 244 | assertEquals(2, hull.getRelations().size());
|
---|
[1890] | 245 |
|
---|
[2077] | 246 | OsmPrimitive p = hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
|
---|
[1890] | 247 | assertNotNull(p);
|
---|
| 248 | assertEquals(p.getClass(), Relation.class);
|
---|
| 249 |
|
---|
[2077] | 250 | Way w = (Way)hull.getPrimitiveById(30, OsmPrimitiveType.WAY);
|
---|
[1890] | 251 | assertNotNull(w);
|
---|
[2578] | 252 | assertTrue(w.isIncomplete());
|
---|
[1890] | 253 |
|
---|
| 254 |
|
---|
[2077] | 255 | Node n = (Node)hull.getPrimitiveById(21,OsmPrimitiveType.NODE);
|
---|
[1890] | 256 | assertNull(n);
|
---|
| 257 |
|
---|
[2077] | 258 | n = (Node)hull.getPrimitiveById(22, OsmPrimitiveType.NODE);
|
---|
[1890] | 259 | assertNull(n);
|
---|
| 260 |
|
---|
[2077] | 261 | Relation r = (Relation)hull.getPrimitiveById(40, OsmPrimitiveType.RELATION);
|
---|
[1890] | 262 | assertNotNull(r);
|
---|
[2578] | 263 | assertTrue(r.isIncomplete());
|
---|
[1890] | 264 |
|
---|
[2077] | 265 | r = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
|
---|
[1890] | 266 | assertNotNull(r);
|
---|
[1926] | 267 | assertEquals(3, r.getMembersCount());
|
---|
[2077] | 268 | RelationMember m = new RelationMember("node-20", hull.getPrimitiveById(20, OsmPrimitiveType.NODE));
|
---|
[1951] | 269 | assertTrue(r.getMembers().contains(m));
|
---|
[2077] | 270 | m = new RelationMember("way-30", hull.getPrimitiveById(30, OsmPrimitiveType.WAY));
|
---|
[1951] | 271 | assertTrue(r.getMembers().contains(m));
|
---|
[2077] | 272 | m = new RelationMember("relation-40", hull.getPrimitiveById(40, OsmPrimitiveType.RELATION));
|
---|
[1951] | 273 | assertTrue(r.getMembers().contains(m));
|
---|
[1890] | 274 | }
|
---|
| 275 |
|
---|
| 276 | @Test
|
---|
| 277 | public void test_OneRelation_NewMembersNotSelected() {
|
---|
| 278 | DataSet source = new DataSet();
|
---|
| 279 | Relation r1 = new Relation();
|
---|
| 280 | r1.put("name", "r1");
|
---|
| 281 | Node n20 = new Node(new LatLon(20.0,20.0));
|
---|
| 282 | n20.put("name", "n20");
|
---|
[2077] | 283 | r1.addMember(new RelationMember("node-20",n20));
|
---|
| 284 |
|
---|
[1890] | 285 | Way w30 = new Way();
|
---|
| 286 | w30.put("name", "w30");
|
---|
| 287 | Node n21;
|
---|
[1910] | 288 | w30.addNode(n21 = new Node(new LatLon(21.0,21.0)));
|
---|
[1890] | 289 | n21.put("name","n21");
|
---|
| 290 | Node n22;
|
---|
[1910] | 291 | w30.addNode(n22 = new Node(new LatLon(22.0,22.0)));
|
---|
[1890] | 292 | n22.put("name","n22");
|
---|
[1951] | 293 | r1.addMember(new RelationMember("way-30",w30));
|
---|
[1890] | 294 | Relation r40 = new Relation();
|
---|
| 295 | r40.put("name", "r40");
|
---|
[1951] | 296 | r1.addMember(new RelationMember("relation-40", r40));
|
---|
[2077] | 297 |
|
---|
[2381] | 298 | source.addPrimitive(n20);
|
---|
| 299 | source.addPrimitive(n21);
|
---|
| 300 | source.addPrimitive(n22);
|
---|
| 301 | source.addPrimitive(w30);
|
---|
[3025] | 302 | source.addPrimitive(r40);
|
---|
[2381] | 303 | source.addPrimitive(r1);
|
---|
[1890] | 304 | source.setSelected(r1);
|
---|
| 305 |
|
---|
| 306 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 307 | DataSet hull = builder.build();
|
---|
| 308 | assertNotNull(hull);
|
---|
[2381] | 309 | assertEquals(1, hull.getWays().size());
|
---|
| 310 | assertEquals(3, hull.getNodes().size());
|
---|
| 311 | assertEquals(2, hull.getRelations().size());
|
---|
[1890] | 312 |
|
---|
[2381] | 313 | OsmPrimitive p = lookupByName(hull.getRelations(), "r1");
|
---|
[1890] | 314 | assertNotNull(p);
|
---|
| 315 | assertEquals(p.getClass(), Relation.class);
|
---|
| 316 |
|
---|
[2381] | 317 | Way w = (Way)lookupByName(hull.getWays(), "w30");
|
---|
[1890] | 318 | assertNotNull(w);
|
---|
[1910] | 319 | assertEquals(2, w.getNodesCount());
|
---|
[1890] | 320 |
|
---|
[2381] | 321 | Node n = (Node)lookupByName(hull.getNodes(), "n21");
|
---|
[1890] | 322 | assertNotNull(n);
|
---|
[1912] | 323 | assertTrue(w.containsNode(n));
|
---|
[1890] | 324 |
|
---|
[2381] | 325 | n = (Node)lookupByName(hull.getNodes(), "n22");
|
---|
[1890] | 326 | assertNotNull(n);
|
---|
[1912] | 327 | assertTrue(w.containsNode(n));
|
---|
[1890] | 328 |
|
---|
[2381] | 329 | Relation r = (Relation)lookupByName(hull.getRelations(), "r40");
|
---|
[1890] | 330 | assertNotNull(r);
|
---|
| 331 |
|
---|
[2381] | 332 | r = (Relation)lookupByName(hull.getRelations(), "r1");
|
---|
[1890] | 333 | assertNotNull(r);
|
---|
[1926] | 334 | assertEquals(3, r.getMembersCount());
|
---|
[2381] | 335 | RelationMember m = new RelationMember("node-20", lookupByName(hull.getNodes(), "n20"));
|
---|
[1951] | 336 | assertTrue(r.getMembers().contains(m));
|
---|
[2388] | 337 | m = new RelationMember("way-30", lookupByName(hull.getWays(), "w30"));
|
---|
[1951] | 338 | assertTrue(r.getMembers().contains(m));
|
---|
[2388] | 339 | m = new RelationMember("relation-40", lookupByName(hull.getRelations(), "r40"));
|
---|
[1951] | 340 | assertTrue(r.getMembers().contains(m));
|
---|
[1890] | 341 | }
|
---|
| 342 |
|
---|
| 343 | @Test
|
---|
| 344 | public void test_OneRelation_Existing_Recursive() {
|
---|
| 345 | DataSet source = new DataSet();
|
---|
[3025] | 346 | Relation r1 = new Relation(1, 1);
|
---|
[1951] | 347 | r1.addMember(new RelationMember("relation-1",r1));
|
---|
[2381] | 348 | source.addPrimitive(r1);
|
---|
[1890] | 349 | source.setSelected(r1);
|
---|
| 350 |
|
---|
| 351 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 352 | DataSet hull = builder.build();
|
---|
| 353 | assertNotNull(hull);
|
---|
[2381] | 354 | assertEquals(1, hull.getRelations().size());
|
---|
[1890] | 355 |
|
---|
[2077] | 356 | Relation r = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
|
---|
[1890] | 357 | assertNotNull(r);
|
---|
[1926] | 358 | assertEquals(1, r.getMembersCount());
|
---|
[1951] | 359 | assertTrue(r.getMembers().contains(new RelationMember("relation-1",r)));
|
---|
[1890] | 360 | }
|
---|
| 361 |
|
---|
| 362 | @Test
|
---|
| 363 | public void test_OneRelation_New_Recursive() {
|
---|
| 364 | DataSet source = new DataSet();
|
---|
| 365 | Relation r1 = new Relation();
|
---|
| 366 | r1.put("name", "r1");
|
---|
[1951] | 367 | r1.addMember(new RelationMember("relation-1",r1));
|
---|
[2381] | 368 | source.addPrimitive(r1);
|
---|
[1890] | 369 | source.setSelected(r1);
|
---|
| 370 |
|
---|
| 371 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 372 | DataSet hull = builder.build();
|
---|
| 373 | assertNotNull(hull);
|
---|
[2381] | 374 | assertEquals(1, hull.getRelations().size());
|
---|
[1890] | 375 |
|
---|
[2381] | 376 | Relation r = (Relation)lookupByName(hull.getRelations(), "r1");
|
---|
[1890] | 377 | assertNotNull(r);
|
---|
[1926] | 378 | assertEquals(1, r.getMembersCount());
|
---|
[1951] | 379 | assertTrue(r.getMembers().contains(new RelationMember("relation-1",r)));
|
---|
[1890] | 380 | }
|
---|
| 381 |
|
---|
| 382 | @Test
|
---|
| 383 | public void test_TwoRelation_Existing_Circular() {
|
---|
| 384 | DataSet source = new DataSet();
|
---|
[3025] | 385 | Relation r1 = new Relation(1, 1);
|
---|
| 386 | source.addPrimitive(r1);
|
---|
| 387 | Relation r2 = new Relation(2, 3);
|
---|
| 388 | source.addPrimitive(r2);
|
---|
[1951] | 389 | r1.addMember(new RelationMember("relation-2",r2));
|
---|
| 390 | r2.addMember(new RelationMember("relation-1",r1));
|
---|
[1890] | 391 | source.setSelected(r1,r2);
|
---|
| 392 |
|
---|
| 393 | MergeSourceBuildingVisitor builder = new MergeSourceBuildingVisitor(source);
|
---|
| 394 | DataSet hull = builder.build();
|
---|
| 395 | assertNotNull(hull);
|
---|
[2381] | 396 | assertEquals(2, hull.getRelations().size());
|
---|
[1890] | 397 |
|
---|
[2077] | 398 | r1 = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
|
---|
[1890] | 399 | assertNotNull(r1);
|
---|
[2077] | 400 | r2 = (Relation)hull.getPrimitiveById(2, OsmPrimitiveType.RELATION);
|
---|
[1890] | 401 | assertNotNull(r2);
|
---|
[1926] | 402 | assertEquals(1, r1.getMembersCount());
|
---|
[1951] | 403 | assertTrue(r1.getMembers().contains(new RelationMember("relation-2",r2)));
|
---|
[1926] | 404 | assertEquals(1, r2.getMembersCount());
|
---|
[1951] | 405 | assertTrue(r2.getMembers().contains(new RelationMember("relation-1",r1)));
|
---|
[1890] | 406 | }
|
---|
| 407 | }
|
---|