source: josm/trunk/test/unit/org/openstreetmap/josm/actions/ExpertToggleActionTest.java@ 17275

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

see #16567 - upgrade almost all tests to JUnit 5, except those depending on WiremockRule

See https://github.com/tomakehurst/wiremock/issues/684

File size: 2.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.junit.jupiter.api.Assertions.assertFalse;
5import static org.junit.jupiter.api.Assertions.assertTrue;
6
7import java.util.concurrent.atomic.AtomicBoolean;
8
9import javax.swing.JPanel;
10
11import org.junit.jupiter.api.extension.RegisterExtension;
12import org.junit.jupiter.api.Test;
13import org.openstreetmap.josm.actions.ExpertToggleAction.ExpertModeChangeListener;
14import org.openstreetmap.josm.testutils.JOSMTestRules;
15
16import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
17
18/**
19 * Test {@link ExpertToggleAction}
20 * @author Michael Zangl
21 * @since 11224
22 */
23class ExpertToggleActionTest {
24 /**
25 * We need prefs to store expert mode state.
26 */
27 @RegisterExtension
28 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
29 public JOSMTestRules test = new JOSMTestRules().preferences();
30
31 /**
32 * Test {@link ExpertToggleAction#addVisibilitySwitcher(java.awt.Component)}
33 * and {@link ExpertToggleAction#removeVisibilitySwitcher(java.awt.Component)}
34 */
35 @Test
36 void testVisibilitySwitcher() {
37 ExpertToggleAction.getInstance().setExpert(false);
38 JPanel c = new JPanel();
39
40 ExpertToggleAction.addVisibilitySwitcher(c);
41 assertFalse(c.isVisible());
42
43 ExpertToggleAction.getInstance().setExpert(true);
44 assertTrue(c.isVisible());
45
46 ExpertToggleAction.removeVisibilitySwitcher(c);
47 ExpertToggleAction.getInstance().setExpert(false);
48 assertTrue(c.isVisible());
49
50 // null should not be a problem
51 ExpertToggleAction.addVisibilitySwitcher(null);
52 ExpertToggleAction.removeVisibilitySwitcher(null);
53 }
54
55 /**
56 * Test {@link ExpertToggleAction#addExpertModeChangeListener(ExpertModeChangeListener)}
57 * and {@link ExpertToggleAction#removeExpertModeChangeListener(ExpertModeChangeListener)}
58 */
59 @Test
60 void testExpertModeListener() {
61 AtomicBoolean value = new AtomicBoolean(false);
62 ExpertToggleAction.getInstance().setExpert(true);
63 ExpertModeChangeListener listener = value::set;
64
65 ExpertToggleAction.addExpertModeChangeListener(listener);
66 assertFalse(value.get());
67
68 ExpertToggleAction.getInstance().setExpert(false);
69 ExpertToggleAction.getInstance().setExpert(true);
70 assertTrue(value.get());
71
72 ExpertToggleAction.getInstance().setExpert(false);
73 assertFalse(value.get());
74
75 ExpertToggleAction.removeExpertModeChangeListener(listener);
76 ExpertToggleAction.getInstance().setExpert(true);
77 assertFalse(value.get());
78
79 ExpertToggleAction.addExpertModeChangeListener(listener, true);
80 assertTrue(value.get());
81
82 // null should not be a problem
83 ExpertToggleAction.addExpertModeChangeListener(null);
84 ExpertToggleAction.removeExpertModeChangeListener(null);
85 }
86
87}
Note: See TracBrowser for help on using the repository browser.