1 | // License: GPL. Copyright 2007 by Immanuel Scholz and others
|
---|
2 | package org.openstreetmap.josm.data.osm;
|
---|
3 |
|
---|
4 | import java.util.Collection;
|
---|
5 | import java.util.Iterator;
|
---|
6 | import java.util.LinkedList;
|
---|
7 |
|
---|
8 | import org.openstreetmap.josm.data.SelectionChangedListener;
|
---|
9 | import org.openstreetmap.josm.testframework.MotherObject;
|
---|
10 |
|
---|
11 | public class DataSetTest extends MotherObject {
|
---|
12 |
|
---|
13 | private final class TestSelectionChangeListener implements SelectionChangedListener {
|
---|
14 | public Collection<? extends OsmPrimitive> called;
|
---|
15 | public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
|
---|
16 | called = newSelection;
|
---|
17 | }
|
---|
18 | }
|
---|
19 |
|
---|
20 | private DataSet ds;
|
---|
21 | private Node node1;
|
---|
22 | private Node node2;
|
---|
23 | private Node node3;
|
---|
24 | private Segment segment;
|
---|
25 | private Way way;
|
---|
26 |
|
---|
27 | @Override protected void setUp() throws Exception {
|
---|
28 | super.setUp();
|
---|
29 | ds = createDataSet();
|
---|
30 | Iterator<Node> it = ds.nodes.iterator();
|
---|
31 | node1 = it.next();
|
---|
32 | node2 = it.next();
|
---|
33 | node3 = it.next();
|
---|
34 | segment = ds.segments.iterator().next();
|
---|
35 | way = ds.ways.iterator().next();
|
---|
36 | }
|
---|
37 |
|
---|
38 | public void testAllPrimitives() {
|
---|
39 | Collection<OsmPrimitive> all = ds.allPrimitives();
|
---|
40 | assertContainsSame(all, node1, node2, node3, segment, way);
|
---|
41 | }
|
---|
42 |
|
---|
43 | public void testAllNonDeletedPrimitives() {
|
---|
44 | assertEquals(5, ds.allNonDeletedPrimitives().size());
|
---|
45 | node1.deleted = true;
|
---|
46 | assertEquals(4, ds.allNonDeletedPrimitives().size());
|
---|
47 | }
|
---|
48 |
|
---|
49 | public void testGetSelected() {
|
---|
50 | node1.selected = true;
|
---|
51 | segment.selected = true;
|
---|
52 | Collection<OsmPrimitive> sel = ds.getSelected();
|
---|
53 | assertContainsSame(sel, node1, segment);
|
---|
54 | }
|
---|
55 |
|
---|
56 | public void testSetSelected() {
|
---|
57 | Collection<OsmPrimitive> sel = new LinkedList<OsmPrimitive>();
|
---|
58 | sel.add(node1);
|
---|
59 | sel.add(way);
|
---|
60 | ds.setSelected(sel);
|
---|
61 | assertTrue(node1.selected);
|
---|
62 | assertFalse(node2.selected);
|
---|
63 | assertTrue(way.selected);
|
---|
64 | }
|
---|
65 |
|
---|
66 | public void testSetSelectedOsmPrimitive() {
|
---|
67 | ds.setSelected(node3);
|
---|
68 | assertTrue(node3.selected);
|
---|
69 | assertFalse(node2.selected);
|
---|
70 |
|
---|
71 | ds.setSelected();
|
---|
72 | assertFalse(node3.selected || node2.selected);
|
---|
73 |
|
---|
74 | ds.setSelected(node1, way);
|
---|
75 | assertTrue(node1.selected && way.selected);
|
---|
76 | assertFalse(node3.selected);
|
---|
77 |
|
---|
78 | ds.setSelected((OsmPrimitive)null);
|
---|
79 | assertFalse(node1.selected || node2.selected || node3.selected || way.selected);
|
---|
80 | }
|
---|
81 |
|
---|
82 | public void testFireSelectionChanged() {
|
---|
83 | TestSelectionChangeListener l = new TestSelectionChangeListener();
|
---|
84 | DataSet.listeners.add(l);
|
---|
85 | ds.setSelected(segment);
|
---|
86 | assertNotNull(l.called);
|
---|
87 | assertEquals(1, l.called.size());
|
---|
88 | assertSame(segment, l.called.iterator().next());
|
---|
89 | DataSet.listeners.remove(l);
|
---|
90 | }
|
---|
91 | }
|
---|