source: josm/trunk/test/unit/org/openstreetmap/josm/gui/layer/OsmDataLayerTest.java@ 10744

Last change on this file since 10744 was 10436, checked in by Don-vip, 8 years ago

see #13001 - replace calls to Main.main.[add|remove]Layer by Main.getLayerManager().[add|remove]Layer

  • Property svn:eol-style set to native
File size: 7.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.layer;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertFalse;
6import static org.junit.Assert.assertNotNull;
7import static org.junit.Assert.assertTrue;
8
9import java.io.File;
10
11import org.junit.BeforeClass;
12import org.junit.Test;
13import org.openstreetmap.josm.JOSMFixture;
14import org.openstreetmap.josm.Main;
15import org.openstreetmap.josm.TestUtils;
16import org.openstreetmap.josm.actions.ExpertToggleAction;
17import org.openstreetmap.josm.data.Bounds;
18import org.openstreetmap.josm.data.coor.LatLon;
19import org.openstreetmap.josm.data.osm.DataSet;
20import org.openstreetmap.josm.data.osm.Node;
21import org.openstreetmap.josm.data.osm.OsmPrimitive;
22import org.openstreetmap.josm.data.osm.Relation;
23import org.openstreetmap.josm.data.osm.Way;
24
25/**
26 * Unit tests of {@link OsmDataLayer} class.
27 */
28public class OsmDataLayerTest {
29
30 /**
31 * Setup tests
32 */
33 @BeforeClass
34 public static void setUpBeforeClass() {
35 JOSMFixture.createUnitTestFixture().init(true);
36 }
37
38 /**
39 * Unit test of {@link OsmDataLayer#setRecentRelation} and {@link OsmDataLayer#getRecentRelations}.
40 */
41 @Test
42 public void testRecentRelation() {
43 DataSet ds = new DataSet();
44 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
45 try {
46 Main.getLayerManager().addLayer(layer);
47 int n = OsmDataLayer.PROPERTY_RECENT_RELATIONS_NUMBER.get();
48 assertTrue(n > 0);
49 for (int i = 0; i < 2*n; i++) {
50 Relation r = new Relation(i, 1);
51 ds.addPrimitive(r);
52 layer.setRecentRelation(r);
53 }
54 assertEquals(n, layer.getRecentRelations().size());
55 for (OsmPrimitive r : ds.allPrimitives()) {
56 if (r instanceof Relation) {
57 layer.removeRecentRelation((Relation) r);
58 }
59 }
60 assertTrue(layer.getRecentRelations().isEmpty());
61 } finally {
62 Main.getLayerManager().removeLayer(layer);
63 }
64 }
65
66 /**
67 * Unit test of {@link OsmDataLayer#getInfoComponent}.
68 */
69 @Test
70 public void testGetInfoComponent() {
71 DataSet ds = new DataSet();
72 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
73 assertNotNull(layer.getInfoComponent());
74
75 layer.setUploadDiscouraged(true);
76
77 fillDataSet(ds);
78
79 assertNotNull(layer.getInfoComponent());
80 }
81
82 private void fillDataSet(DataSet ds) {
83 Node n = new Node(1, 2);
84 n.setCoor(LatLon.ZERO);
85 n.setDeleted(true);
86 n.setVisible(false);
87 ds.addPrimitive(n);
88 n = new Node(2, 2);
89 n.setCoor(LatLon.ZERO);
90 ds.addPrimitive(n);
91
92 Way w = new Way(1, 2);
93 w.setDeleted(true);
94 w.setVisible(false);
95 ds.addPrimitive(w);
96 ds.addPrimitive(new Way(2, 2));
97
98 Relation r = new Relation(1, 2);
99 r.setDeleted(true);
100 r.setVisible(false);
101 ds.addPrimitive(r);
102 ds.addPrimitive(new Relation(2, 2));
103 }
104
105 /**
106 * Unit test of {@link OsmDataLayer#addLayerStateChangeListener}.
107 */
108 @Test
109 public void testLayerStateChangeListenerNull() {
110 DataSet ds = new DataSet();
111 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
112 layer.addLayerStateChangeListener(null);
113 }
114
115 /**
116 * Unit test of {@link OsmDataLayer#getIcon}.
117 */
118 @Test
119 public void testGetIcon() {
120 DataSet ds = new DataSet();
121 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
122 assertNotNull(layer.getIcon());
123 layer.setUploadDiscouraged(true);
124 assertNotNull(layer.getIcon());
125 }
126
127 /**
128 * Unit test of {@link OsmDataLayer#paint}.
129 */
130 @Test
131 public void testPaint() {
132 DataSet ds = new DataSet();
133 fillDataSet(ds);
134 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
135 try {
136 Main.getLayerManager().addLayer(layer);
137 assertTrue(layer.getMenuEntries().length > 0);
138 layer.paint(TestUtils.newGraphics(), Main.map.mapView, new Bounds(LatLon.ZERO));
139 } finally {
140 Main.getLayerManager().removeLayer(layer);
141 }
142 }
143
144 /**
145 * Unit test of {@link OsmDataLayer#getToolTipText}.
146 */
147 @Test
148 public void testGetToolTipText() {
149 DataSet ds = new DataSet();
150 assertEquals("0 nodes, 0 ways, 0 relations", new OsmDataLayer(ds, "", null).getToolTipText());
151 fillDataSet(ds);
152 assertEquals("1 node, 1 way, 1 relation", new OsmDataLayer(ds, "", null).getToolTipText());
153 assertEquals("<html>1 node, 1 way, 1 relation<br>data.osm</html>", new OsmDataLayer(ds, "", new File("data.osm")).getToolTipText());
154 }
155
156 /**
157 * Unit test of {@link OsmDataLayer#mergeFrom}.
158 */
159 @Test
160 public void testMergeFrom() {
161 DataSet ds = new DataSet();
162 fillDataSet(ds);
163 OsmDataLayer layer1 = new OsmDataLayer(ds, "", null);
164 OsmDataLayer layer2 = new OsmDataLayer(new DataSet(), "", null);
165 assertTrue(layer2.data.allPrimitives().isEmpty());
166 assertTrue(layer2.isMergable(layer1));
167 layer2.mergeFrom(layer1);
168 assertEquals(6, layer2.data.allPrimitives().size());
169 layer1.setUploadDiscouraged(true);
170 layer2.mergeFrom(layer1);
171 assertTrue(layer2.isUploadDiscouraged());
172 }
173
174 /**
175 * Unit test of {@link OsmDataLayer#cleanupAfterUpload}.
176 */
177 @Test
178 public void testCleanupAfterUpload() {
179 DataSet ds = new DataSet();
180 fillDataSet(ds);
181 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
182 assertEquals(6, layer.data.allPrimitives().size());
183 layer.cleanupAfterUpload(ds.allPrimitives());
184 assertEquals(3, layer.data.allPrimitives().size());
185 }
186
187 /**
188 * Unit test of {@link OsmDataLayer#getMenuEntries}.
189 */
190 @Test
191 public void testGetMenuEntries() {
192 OsmDataLayer layer = new OsmDataLayer(new DataSet(), "", null);
193 ExpertToggleAction.getInstance().actionPerformed(null);
194 assertEquals(13, layer.getMenuEntries().length);
195 ExpertToggleAction.getInstance().actionPerformed(null);
196 assertEquals(16, layer.getMenuEntries().length);
197 }
198
199 /**
200 * Unit test of {@link OsmDataLayer#toGpxData}.
201 */
202 @Test
203 public void testToGpxData() {
204 DataSet ds = new DataSet();
205 fillDataSet(ds);
206 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
207 assertNotNull(layer.toGpxData());
208 }
209
210 /**
211 * Unit test of {@link OsmDataLayer#containsPoint}.
212 */
213 @Test
214 public void testContainsPoint() {
215 DataSet ds = new DataSet();
216 fillDataSet(ds);
217 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
218 assertTrue(layer.containsPoint(LatLon.ZERO));
219 }
220
221 /**
222 * Unit test of {@link OsmDataLayer#isChanged}.
223 */
224 @Test
225 public void testIsChanged() {
226 DataSet ds = new DataSet();
227 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
228 assertTrue(layer.isChanged());
229 }
230
231 /**
232 * Unit test of {@link OsmDataLayer#isModified}.
233 */
234 @Test
235 public void testIsModified() {
236 DataSet ds = new DataSet();
237 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
238 assertFalse(layer.isModified());
239 fillDataSet(ds);
240 assertTrue(layer.isModified());
241 }
242
243 /**
244 * Unit test of {@link OsmDataLayer#projectionChanged}.
245 */
246 @Test
247 public void testProjectionChanged() {
248 new OsmDataLayer(new DataSet(), "", null).projectionChanged(null, null);
249 }
250
251 /**
252 * Unit test of {@link OsmDataLayer#checkSaveConditions}.
253 */
254 @Test
255 public void testCheckSaveConditions() {
256 DataSet ds = new DataSet();
257 OsmDataLayer layer = new OsmDataLayer(ds, "", null);
258 assertFalse(layer.checkSaveConditions());
259 fillDataSet(ds);
260 assertTrue(layer.checkSaveConditions());
261 }
262}
Note: See TracBrowser for help on using the repository browser.