| 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 | }
|
|---|