source: josm/trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableTest.java@ 14028

Last change on this file since 14028 was 12636, checked in by Don-vip, 7 years ago

see #15182 - deprecate Main.getLayerManager(). Replacement: gui.MainApplication.getLayerManager()

  • Property svn:eol-style set to native
File size: 3.7 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.relation;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertNotNull;
6
7import java.awt.event.MouseEvent;
8import java.awt.event.MouseListener;
9
10import org.junit.Rule;
11import org.junit.Test;
12import org.openstreetmap.josm.data.coor.LatLon;
13import org.openstreetmap.josm.data.osm.DataSet;
14import org.openstreetmap.josm.data.osm.Node;
15import org.openstreetmap.josm.data.osm.Relation;
16import org.openstreetmap.josm.data.osm.RelationMember;
17import org.openstreetmap.josm.gui.MainApplication;
18import org.openstreetmap.josm.gui.dialogs.relation.SelectionTable.DoubleClickAdapter;
19import org.openstreetmap.josm.gui.layer.OsmDataLayer;
20import org.openstreetmap.josm.testutils.JOSMTestRules;
21
22import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
23
24/**
25 * Unit tests of {@link SelectionTable} class.
26 */
27public class SelectionTableTest {
28
29 /**
30 * Setup test.
31 */
32 @Rule
33 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
34 public JOSMTestRules test = new JOSMTestRules();
35
36 /**
37 * Unit test of {@link SelectionTable#SelectionTable}.
38 */
39 @Test
40 public void testSelectionTable() {
41 // Constructs a relation with a member
42 DataSet ds = new DataSet();
43 Node n = new Node(LatLon.ZERO);
44 Relation r = new Relation();
45 r.addMember(new RelationMember(null, n));
46 // Add it to dataset
47 ds.addPrimitive(n);
48 ds.addPrimitive(r);
49 // Add a new layer as active one
50 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
51 try {
52 MainApplication.getLayerManager().addLayer(layer);
53 // Constructs models and table
54 MemberTableModel memberTableModel = new MemberTableModel(r, layer, null);
55 memberTableModel.populate(r);
56 memberTableModel.register();
57 SelectionTableModel selectionTableModel = new SelectionTableModel(layer);
58 selectionTableModel.register();
59 try {
60 SelectionTable t = new SelectionTable(selectionTableModel, memberTableModel);
61 DoubleClickAdapter adapter = null;
62 for (MouseListener listener : t.getMouseListeners()) {
63 if (listener instanceof DoubleClickAdapter) {
64 adapter = (DoubleClickAdapter) listener;
65 }
66 }
67 assertNotNull(adapter);
68 // Select member, trigger selection change events
69 ds.setSelected(n);
70 // Simple left click, do nothing
71 adapter.mouseClicked(new MouseEvent(t, MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, 0, 0,
72 1, false, MouseEvent.BUTTON1));
73 assertEquals(-1, memberTableModel.getSelectionModel().getMinSelectionIndex());
74 // Double right click, do nothing
75 adapter.mouseClicked(new MouseEvent(t, MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, 0, 0,
76 2, false, MouseEvent.BUTTON2));
77 assertEquals(-1, memberTableModel.getSelectionModel().getMinSelectionIndex());
78 // Double left click, select member
79 adapter.mouseClicked(new MouseEvent(t, MouseEvent.MOUSE_CLICKED, System.currentTimeMillis(), 0, 0, 0,
80 2, false, MouseEvent.BUTTON1));
81 assertEquals(0, memberTableModel.getSelectionModel().getMinSelectionIndex());
82 } finally {
83 selectionTableModel.unregister();
84 memberTableModel.unregister();
85 }
86 } finally {
87 MainApplication.getLayerManager().removeLayer(layer);
88 }
89 }
90}
Note: See TracBrowser for help on using the repository browser.