Way w = lookupWay(ds, 0);
assertNotNull(w);
OsmServerBackreferenceReader reader = new OsmServerBackreferenceReader(n);
reader.setReadFull(false);
DataSet referers = reader.parseOsm(NullProgressMonitor.INSTANCE);
printNumberOfPrimitives(referers);
Set<Long> expectedNodeIds = new HashSet<>();
Set<Long> expectedWayIds = new HashSet<>();
Set<Long> expectedRelationIds = new HashSet<>();
for (OsmPrimitive ref : n.getReferrers()) {
if (ref instanceof Way) {
expectedWayIds.add(ref.getId());
expectedNodeIds.addAll(getNodeIdsInWay((Way) ref));
} else if (ref instanceof Relation) {
expectedRelationIds.add(ref.getId());
expectedWayIds.addAll(getWayIdsInRelation((Relation) ref, false));
expectedNodeIds.addAll(getNodeIdsInRelation((Relation) ref, false));
}
}
assertEquals(expectedNodeIds.size(), referers.getNodes().size());
assertEquals(expectedWayIds.size(), referers.getWays().size());
assertEquals(expectedRelationIds.size(), referers.getRelations().size());
for (Node node : referers.getNodes()) {
assertTrue(expectedNodeIds.contains(node.getId()));
assertFalse(node.isIncomplete());
}
for (Way way : referers.getWays()) {
assertTrue(expectedWayIds.contains(way.getId()));
assertEquals(n.getReferrers().contains(way), !way.isIncomplete());
}
for (Relation relation : referers.getRelations()) {
assertTrue(expectedRelationIds.contains(relation.getId()));
assertFalse(relation.isIncomplete());
}
}