source: josm/test/unit/org/openstreetmap/josm/data/osm/DataSetTest.java@ 297

Last change on this file since 297 was 297, checked in by imi, 17 years ago
  • fixed bug that selection listener were informed twice on selection changes
File size: 2.4 KB
Line 
1package org.openstreetmap.josm.data.osm;
2
3import java.util.Collection;
4import java.util.Iterator;
5import java.util.LinkedList;
6
7import org.openstreetmap.josm.data.SelectionChangedListener;
8import org.openstreetmap.josm.testframework.MotherObject;
9
10public class DataSetTest extends MotherObject {
11
12 private final class TestSelectionChangeListener implements SelectionChangedListener {
13 public Collection<? extends OsmPrimitive> called;
14 public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
15 called = newSelection;
16 }
17 }
18
19 private DataSet ds;
20 private Node node1;
21 private Node node2;
22 private Node node3;
23 private Segment segment;
24 private Way way;
25
26 @Override protected void setUp() throws Exception {
27 super.setUp();
28 ds = createDataSet();
29 Iterator<Node> it = ds.nodes.iterator();
30 node1 = it.next();
31 node2 = it.next();
32 node3 = it.next();
33 segment = ds.segments.iterator().next();
34 way = ds.ways.iterator().next();
35 }
36
37 public void testAllPrimitives() {
38 Collection<OsmPrimitive> all = ds.allPrimitives();
39 assertContainsSame(all, node1, node2, node3, segment, way);
40 }
41
42 public void testAllNonDeletedPrimitives() {
43 assertEquals(5, ds.allNonDeletedPrimitives().size());
44 node1.deleted = true;
45 assertEquals(4, ds.allNonDeletedPrimitives().size());
46 }
47
48 public void testGetSelected() {
49 node1.selected = true;
50 segment.selected = true;
51 Collection<OsmPrimitive> sel = ds.getSelected();
52 assertContainsSame(sel, node1, segment);
53 }
54
55 public void testSetSelected() {
56 Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
57 sel.add(node1);
58 sel.add(way);
59 ds.setSelected(sel);
60 assertTrue(node1.selected);
61 assertFalse(node2.selected);
62 assertTrue(way.selected);
63 }
64
65 public void testSetSelectedOsmPrimitive() {
66 ds.setSelected(node3);
67 assertTrue(node3.selected);
68 assertFalse(node2.selected);
69
70 ds.setSelected();
71 assertFalse(node3.selected || node2.selected);
72
73 ds.setSelected(node1, way);
74 assertTrue(node1.selected && way.selected);
75 assertFalse(node3.selected);
76
77 ds.setSelected((OsmPrimitive)null);
78 assertFalse(node1.selected || node2.selected || node3.selected || way.selected);
79 }
80
81 public void testFireSelectionChanged() {
82 TestSelectionChangeListener l = new TestSelectionChangeListener();
83 DataSet.listeners.add(l);
84 ds.setSelected(segment);
85 assertNotNull(l.called);
86 assertEquals(1, l.called.size());
87 assertSame(segment, l.called.iterator().next());
88 DataSet.listeners.remove(l);
89 }
90}
Note: See TracBrowser for help on using the repository browser.