source: josm/trunk/test/unit/org/openstreetmap/josm/MainTest.java@ 14119

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

see #15229 - deprecate all Main methods returning an URL

File size: 3.6 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm;
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.net.MalformedURLException;
10import java.net.URL;
11import java.util.Map;
12
13import org.junit.Rule;
14import org.junit.Test;
15import org.openstreetmap.josm.Main.InitStatusListener;
16import org.openstreetmap.josm.Main.InitializationTask;
17import org.openstreetmap.josm.io.OnlineResource;
18import org.openstreetmap.josm.testutils.JOSMTestRules;
19
20import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
21
22/**
23 * Unit tests of {@link Main} class.
24 */
25public class MainTest {
26
27 /**
28 * Setup test.
29 */
30 @Rule
31 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
32 public JOSMTestRules test = new JOSMTestRules().platform().https().devAPI().main().projection();
33
34 /**
35 * Unit test of {@link Main#preConstructorInit}.
36 */
37 @Test
38 public void testPreConstructorInit() {
39 Main.preConstructorInit();
40 assertNotNull(Main.getProjection());
41 }
42
43 /**
44 * Unit test of {@link Main#addNetworkError}, {@link Main#getNetworkErrors} and {@link Main#clearNetworkErrors}.
45 * @throws MalformedURLException if any error occurs
46 */
47 @Test
48 public void testNetworkErrors() throws MalformedURLException {
49 Main.clearNetworkErrors();
50 assertTrue(Main.getNetworkErrors().isEmpty());
51 Main.addNetworkError("http://url1", new Exception("exception_1"));
52 Main.addNetworkError(new URL("http://url2"), new Exception("exception_2"));
53 Map<String, Throwable> errors = Main.getNetworkErrors();
54 assertEquals(2, errors.size());
55 assertEquals("exception_1", errors.get("http://url1").getMessage());
56 assertEquals("exception_2", errors.get("http://url2").getMessage());
57 Main.clearNetworkErrors();
58 assertTrue(Main.getNetworkErrors().isEmpty());
59 }
60
61 /**
62 * Unit test of {@link Main#setOffline} and {@link Main#getOfflineResources}.
63 */
64 @Test
65 public void testOfflineRessources() {
66 Main.setOnline(OnlineResource.ALL);
67 assertTrue(Main.getOfflineResources().isEmpty());
68 assertFalse(Main.isOffline(OnlineResource.JOSM_WEBSITE));
69 Main.setOffline(OnlineResource.JOSM_WEBSITE);
70 assertTrue(Main.isOffline(OnlineResource.JOSM_WEBSITE));
71 Main.setOnline(OnlineResource.JOSM_WEBSITE);
72 assertFalse(Main.isOffline(OnlineResource.JOSM_WEBSITE));
73 Main.setOffline(OnlineResource.ALL);
74 assertTrue(Main.isOffline(OnlineResource.JOSM_WEBSITE));
75 assertTrue(Main.isOffline(OnlineResource.OSM_API));
76 Main.setOnline(OnlineResource.ALL);
77 }
78
79 private static class InitStatusListenerStub implements InitStatusListener {
80
81 boolean updated;
82 boolean finished;
83
84 @Override
85 public Object updateStatus(String event) {
86 updated = true;
87 return null;
88 }
89
90 @Override
91 public void finish(Object status) {
92 finished = true;
93 }
94 }
95
96 /**
97 * Unit test of {@link Main#setInitStatusListener}.
98 */
99 @Test
100 public void testSetInitStatusListener() {
101 InitStatusListenerStub listener = new InitStatusListenerStub();
102 Main.setInitStatusListener(listener);
103 assertFalse(listener.updated);
104 assertFalse(listener.finished);
105 new InitializationTask("", () -> { }).call();
106 assertTrue(listener.updated);
107 assertTrue(listener.finished);
108 }
109}
Note: See TracBrowser for help on using the repository browser.