source: josm/trunk/test/unit/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTableTest.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

  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.preferences.advanced;
3
4import static org.junit.jupiter.api.Assertions.assertEquals;
5import static org.junit.jupiter.api.Assertions.assertFalse;
6import static org.junit.jupiter.api.Assertions.assertNull;
7import static org.junit.jupiter.api.Assertions.assertTrue;
8
9import java.util.Arrays;
10
11import javax.swing.JOptionPane;
12
13import org.junit.jupiter.api.extension.RegisterExtension;
14import org.junit.jupiter.api.Test;
15import org.openstreetmap.josm.TestUtils;
16import org.openstreetmap.josm.gui.ExtendedDialog;
17import org.openstreetmap.josm.gui.preferences.advanced.PreferencesTable.AllSettingsTableModel;
18import org.openstreetmap.josm.spi.preferences.StringSetting;
19import org.openstreetmap.josm.testutils.JOSMTestRules;
20import org.openstreetmap.josm.testutils.mockers.ExtendedDialogMocker;
21import org.openstreetmap.josm.testutils.mockers.JOptionPaneSimpleMocker;
22
23import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
24
25/**
26 * Unit tests of {@link PreferencesTable} class.
27 */
28class PreferencesTableTest {
29 /**
30 * Setup tests
31 */
32 @RegisterExtension
33 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
34 public JOSMTestRules test = new JOSMTestRules().preferences().assertionsInEDT();
35
36 private static PrefEntry newPrefEntry(String value) {
37 StringSetting val = new StringSetting(value);
38 StringSetting def = new StringSetting("defaultValue");
39 return new PrefEntry("key", val, def, false);
40 }
41
42 private static PreferencesTable newTable() {
43 return new PreferencesTable(Arrays.asList(newPrefEntry("value")));
44 }
45
46 /**
47 * Unit test of {@link PreferencesTable#PreferencesTable}.
48 */
49 @Test
50 void testPreferencesTable() {
51 TestUtils.assumeWorkingJMockit();
52 final JOptionPaneSimpleMocker mocker = new JOptionPaneSimpleMocker();
53 mocker.getMockResultMap().put("Please select the row to edit.", JOptionPane.OK_OPTION);
54 mocker.getMockResultMap().put("Please select the row to delete.", JOptionPane.OK_OPTION);
55 new ExtendedDialogMocker() {
56 @Override
57 protected int getMockResult(final ExtendedDialog instance) {
58 if (instance.getTitle().equals("Add setting")) {
59 return 1 + this.getButtonPositionFromLabel(instance, "Cancel");
60 } else {
61 return super.getMockResult(instance);
62 }
63 }
64 };
65 PreferencesTable t = newTable();
66 t.fireDataChanged();
67 assertTrue(t.getSelectedItems().isEmpty());
68 assertFalse(t.editPreference(null));
69 assertNull(t.addPreference(null));
70 t.resetPreferences(null);
71 }
72
73 /**
74 * Unit test of {@link PreferencesTable.AllSettingsTableModel} class.
75 */
76 @Test
77 void testAllSettingsTableModel() {
78 AllSettingsTableModel model = (AllSettingsTableModel) newTable().getModel();
79 assertEquals(1, model.getRowCount());
80 assertFalse(model.isCellEditable(0, 0));
81 assertTrue(model.isCellEditable(0, 1));
82 assertEquals("key", model.getValueAt(0, 0));
83 assertEquals(newPrefEntry("value"), model.getValueAt(0, 1));
84 String foobar = "foobar";
85 model.setValueAt(foobar, 0, 1);
86 assertEquals(newPrefEntry(foobar), model.getValueAt(0, 1));
87 }
88}
Note: See TracBrowser for help on using the repository browser.