From 904df3e690814695f6b67f76c217d779047871e5 Mon Sep 17 00:00:00 2001
From: Robert Scott <code@humanleg.org.uk>
Date: Mon, 19 Mar 2018 00:08:30 +0000
Subject: [PATCH v2 11/28] PreferencesTableTest: convert to use of
 JOSMTestRules, ExtendedDialogMocker & JOptionPaneSimpleMocker

won't yet have an effect until some internal isHeadless() checks are removed
---
 .../preferences/advanced/PreferencesTableTest.java | 36 +++++++++++++++++-----
 1 file changed, 28 insertions(+), 8 deletions(-)

diff --git a/test/unit/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTableTest.java b/test/unit/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTableTest.java
index 4790d806d..cfa51654a 100644
--- a/test/unit/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTableTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTableTest.java
@@ -7,25 +7,32 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import java.util.Arrays;
+import javax.swing.JOptionPane;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.spi.preferences.StringSetting;
+import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.preferences.advanced.PreferencesTable.AllSettingsTableModel;
 
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+import org.openstreetmap.josm.testutils.JOptionPaneSimpleMocker;
+import org.openstreetmap.josm.testutils.ExtendedDialogMocker;
+
+import com.google.common.collect.ImmutableMap;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
 /**
  * Unit tests of {@link PreferencesTable} class.
  */
 public class PreferencesTableTest {
-
     /**
-     * Setup test.
+     * Setup tests
      */
-    @BeforeClass
-    public static void setUpBeforeClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().assertionsInEDT();
 
     private static PrefEntry newPrefEntry(String value) {
         StringSetting val = new StringSetting(value);
@@ -42,6 +49,19 @@ public class PreferencesTableTest {
      */
     @Test
     public void testPreferencesTable() {
+        new JOptionPaneSimpleMocker(ImmutableMap.of(
+            "Please select the row to edit.", JOptionPane.OK_OPTION,
+            "Please select the row to delete.", JOptionPane.OK_OPTION
+        ));
+        new ExtendedDialogMocker() {
+            protected int getMockResult(final ExtendedDialog instance) {
+                if (instance.getTitle().equals("Add setting")) {
+                    return 1 + this.getButtonPositionFromLabel(instance, "Cancel");
+                } else {
+                    return super.getMockResult(instance);
+                }
+            }
+        };
         PreferencesTable t = newTable();
         t.fireDataChanged();
         assertTrue(t.getSelectedItems().isEmpty());
-- 
2.11.0

