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

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

checkstyle

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