Index: /trunk/.classpath
===================================================================
--- /trunk/.classpath	(revision 11920)
+++ /trunk/.classpath	(revision 11921)
@@ -21,4 +21,5 @@
 	<classpathentry kind="lib" path="test/lib/system-rules-1.16.1.jar"/>
 	<classpathentry kind="lib" path="test/lib/unitils-core/unitils-core-3.4.6.jar"/>
+	<classpathentry kind="lib" path="test/lib/commons-testing/commons-testing-2.1.0.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/>
Index: /trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/Main.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/Main.java	(revision 11921)
@@ -1221,4 +1221,8 @@
         private static MasterWindowListener INSTANCE;
 
+        /**
+         * Returns the unique {@code MasterWindowListener} instance.
+         * @return the unique {@code MasterWindowListener} instance
+         */
         public static synchronized MasterWindowListener getInstance() {
             if (INSTANCE == null) {
Index: /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 11921)
@@ -539,5 +539,5 @@
      * Class contains some auxiliary functions
      */
-    private static final class EN {
+    static final class EN {
         private EN() {
             // Hide implicit public constructor for utility class
Index: /trunk/src/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelper.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelper.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelper.java	(revision 11921)
@@ -15,5 +15,5 @@
 /**
  * Helper class for handling OGC GetCapabilities documents
- *
+ * @since 10993
  */
 public final class GetCapabilitiesParseHelper {
Index: /trunk/src/org/openstreetmap/josm/data/oauth/SignpostAdapters.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/oauth/SignpostAdapters.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/data/oauth/SignpostAdapters.java	(revision 11921)
@@ -18,4 +18,5 @@
 
     private SignpostAdapters() {
+        // Hide constructor for utility classes
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/gui/ConditionalOptionPaneUtil.java	(revision 11921)
@@ -45,5 +45,7 @@
      * this is a static utility class only
      */
-    private ConditionalOptionPaneUtil() {}
+    private ConditionalOptionPaneUtil() {
+        // Hide default constructor for utility classes
+    }
 
     /**
Index: /trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java	(revision 11921)
@@ -38,4 +38,5 @@
      */
     private ExceptionDialogUtil() {
+        // Hide default constructor for utility classes
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/gui/datatransfer/ClipboardUtils.java	(revision 11921)
@@ -34,4 +34,5 @@
 
     private ClipboardUtils() {
+        // Hide default constructor for utility classes
     }
 
Index: /trunk/src/org/openstreetmap/josm/tools/StreamUtils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/StreamUtils.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/tools/StreamUtils.java	(revision 11921)
@@ -16,5 +16,7 @@
      * Utility class
      */
-    private StreamUtils() {}
+    private StreamUtils() {
+        // Hide default constructor for utility classes
+    }
 
     /**
Index: /trunk/src/org/openstreetmap/josm/tools/date/DateUtils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/date/DateUtils.java	(revision 11920)
+++ /trunk/src/org/openstreetmap/josm/tools/date/DateUtils.java	(revision 11921)
@@ -59,5 +59,5 @@
      * Constructs a new {@code DateUtils}.
      */
-    protected DateUtils() {
+    private DateUtils() {
         // Hide default constructor for utils classes
     }
Index: /trunk/test/unit/JOSMTest.java
===================================================================
--- /trunk/test/unit/JOSMTest.java	(revision 11921)
+++ /trunk/test/unit/JOSMTest.java	(revision 11921)
@@ -0,0 +1,18 @@
+// License: GPL. For details, see LICENSE file.
+import static org.junit.Assert.assertNotNull;
+
+import org.junit.Test;
+
+/**
+ * Unit tests of {@link JOSM} class.
+ */
+public class JOSMTest {
+
+    /**
+     * Unit test of {@link JOSM} constructor.
+     */
+    @Test
+    public void testJOSM() {
+        assertNotNull(new JOSM());
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/MainTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/MainTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/MainTest.java	(revision 11921)
@@ -14,4 +14,5 @@
 import org.junit.Test;
 import org.openstreetmap.josm.Main.DownloadParamType;
+import org.openstreetmap.josm.Main.MasterWindowListener;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -81,3 +82,13 @@
         assertNotNull(Main.toolbar);
     }
+
+    /**
+     * Unit test of {@link Main.MasterWindowListener}.
+     */
+    @Test
+    public void testMasterWindowListener() {
+        MasterWindowListener.setup();
+        MasterWindowListener.teardown();
+        assertNotNull(MasterWindowListener.getInstance());
+    }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/OrthogonalizeActionTest.java	(revision 11921)
@@ -23,4 +23,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -34,5 +35,5 @@
     @Rule
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
-    public JOSMTestRules test = new JOSMTestRules();
+    public JOSMTestRules test = new JOSMTestRules().projection();
 
     @Test(expected = OrthogonalizeAction.InvalidUserInputException.class)
@@ -84,4 +85,13 @@
     }
 
+    /**
+     * Tests that {@code OrthogonalizeAction.EN} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(OrthogonalizeAction.EN.class);
+    }
+
     DataSet performTest(String... search) throws Exception {
         try (FileInputStream in = new FileInputStream(TestUtils.getTestDataRoot() + "orthogonalize.osm")) {
Index: /trunk/test/unit/org/openstreetmap/josm/actions/SelectByInternalPointActionTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/actions/SelectByInternalPointActionTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/actions/SelectByInternalPointActionTest.java	(revision 11921)
@@ -21,4 +21,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -33,4 +34,13 @@
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     public JOSMTestRules rules = new JOSMTestRules().preferences().projection();
+
+    /**
+     * Tests that {@code SelectByInternalPointAction} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(SelectByInternalPointAction.class);
+    }
 
     /**
Index: /trunk/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java	(revision 11921)
@@ -19,4 +19,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -31,4 +32,13 @@
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code ReverseWayTagCorrector.TagSwitcher} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(ReverseWayTagCorrector.TagSwitcher.class);
+    }
 
     /**
Index: /trunk/test/unit/org/openstreetmap/josm/data/CustomConfiguratorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/CustomConfiguratorTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/data/CustomConfiguratorTest.java	(revision 11921)
@@ -18,8 +18,10 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
+import org.openstreetmap.josm.data.CustomConfigurator.PreferencesUtils;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.Utils;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -118,3 +120,12 @@
         assertEquals(9, pref.getCollection("lorem_ipsum").size());
     }
+
+    /**
+     * Tests that {@code PreferencesUtils} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(PreferencesUtils.class);
+    }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/data/cache/JCSCacheManagerTest.java	(revision 11921)
@@ -16,4 +16,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -28,4 +29,13 @@
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     public JOSMTestRules test = new JOSMTestRules().preferences();
+
+    /**
+     * Tests that {@code JCSCacheManager} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(JCSCacheManager.class);
+    }
 
     /**
Index: /trunk/test/unit/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelperTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelperTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/data/imagery/GetCapabilitiesParseHelperTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.imagery;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests for class {@link GetCapabilitiesParseHelper}.
+ */
+public class GetCapabilitiesParseHelperTest {
+
+    /**
+     * Setup tests
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code GetCapabilitiesParseHelper} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(GetCapabilitiesParseHelper.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/oauth/SignpostAdaptersTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/oauth/SignpostAdaptersTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/data/oauth/SignpostAdaptersTest.java	(revision 11921)
@@ -19,4 +19,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -34,4 +35,13 @@
     private static HttpClient newClient() throws MalformedURLException {
         return HttpClient.create(new URL("https://www.openstreetmap.org"));
+    }
+
+    /**
+     * Tests that {@code SignpostAdapters} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(SignpostAdapters.class);
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/OsmValidatorTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.validation;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests for class {@link OsmValidator}.
+ */
+public class OsmValidatorTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform();
+
+    /**
+     * Tests that {@code OsmValidator} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(OsmValidator.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/util/EntitiesTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/util/EntitiesTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/util/EntitiesTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.validation.util;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests for class {@link Entities}.
+ */
+public class EntitiesTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code Entities} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(Entities.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/util/ValUtilTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/util/ValUtilTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/util/ValUtilTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.validation.util;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests for class {@link ValUtil}.
+ */
+public class ValUtilTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code ValUtil} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(ValUtil.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/ConditionalOptionPaneUtilTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/ConditionalOptionPaneUtilTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/ConditionalOptionPaneUtilTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests of {@link ConditionalOptionPaneUtil} class.
+ */
+public class ConditionalOptionPaneUtilTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code ConditionalOptionPaneUtil} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(ConditionalOptionPaneUtil.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/ExceptionDialogUtilTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/ExceptionDialogUtilTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/ExceptionDialogUtilTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests of {@link ExceptionDialogUtil} class.
+ */
+public class ExceptionDialogUtilTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code ExceptionDialogUtil} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(ExceptionDialogUtil.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/ClipboardUtilsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/ClipboardUtilsTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/datatransfer/ClipboardUtilsTest.java	(revision 11921)
@@ -21,4 +21,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -120,3 +121,12 @@
         assertNull(ClipboardUtils.getSystemSelection());
     }
+
+    /**
+     * Tests that {@code ClipboardUtils} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(ClipboardUtils.class);
+    }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/ChangesetDialogTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/ChangesetDialogTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/ChangesetDialogTest.java	(revision 11921)
@@ -0,0 +1,32 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.dialogs;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.gui.dialogs.ChangesetDialog.LaunchChangesetManager;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests of {@link ChangesetDialog} class.
+ */
+public class ChangesetDialogTest {
+
+    /**
+     * Setup tests
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code LaunchChangesetManager} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(LaunchChangesetManager.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactoryTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactoryTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactoryTest.java	(revision 11921)
@@ -6,7 +6,9 @@
 import org.openstreetmap.josm.gui.mappaint.mapcss.Condition.Context;
 import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.Op;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ConditionFactory.PseudoClasses;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -30,3 +32,12 @@
         ConditionFactory.createKeyValueCondition("name", "Rodovia ([A-Z]{2,3}-[0-9]{2,4}", Op.REGEX, Context.PRIMITIVE, false);
     }
+
+    /**
+     * Tests that {@code PseudoClasses} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(PseudoClasses.class);
+    }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactoryTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactoryTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactoryTest.java	(revision 11921)
@@ -0,0 +1,32 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.mappaint.mapcss;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.gui.mappaint.mapcss.ExpressionFactory.Functions;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests of {@link ExpressionFactory}.
+ */
+public class ExpressionFactoryTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code Functions} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(Functions.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReaderTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetReaderTest.java	(revision 11921)
@@ -13,11 +13,13 @@
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.gui.tagging.presets.items.Check;
 import org.openstreetmap.josm.gui.tagging.presets.items.Key;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.xml.sax.SAXException;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -27,10 +29,9 @@
 
     /**
-     * Setup test.
+     * Setup rule
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().platform();
 
     /**
Index: /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetsTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetsTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.tagging.presets;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests of {@link TaggingPresets} class.
+ */
+public class TaggingPresetsTest {
+
+    /**
+     * Setup rule
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code TaggingPresets} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(TaggingPresets.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/io/CertificateAmendmentTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/CertificateAmendmentTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/io/CertificateAmendmentTest.java	(revision 11921)
@@ -9,7 +9,10 @@
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -19,9 +22,17 @@
 
     /**
-     * Setup test.
+     * Setup rule
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code CertificateAmendment} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(CertificateAmendment.class);
     }
 
@@ -58,6 +69,6 @@
     @Test
     public void testStartSSL() throws IOException {
-        connect("https://map.dgpsonline.eu", true);
-        connect("https://www.startssl.com", true);
+        // StartSSL is untrusted
+        connect("https://www.startssl.com", false);
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/tools/CheckParameterUtilTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/CheckParameterUtilTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/CheckParameterUtilTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests of {@link CheckParameterUtil} class.
+ */
+public class CheckParameterUtilTest {
+
+    /**
+     * Setup rule.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code CheckParameterUtil} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(CheckParameterUtil.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/tools/FontsManagerTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/FontsManagerTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/FontsManagerTest.java	(revision 11921)
@@ -12,4 +12,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -42,3 +43,12 @@
         }
     }
+
+    /**
+     * Tests that {@code FontsManager} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(FontsManager.class);
+    }
 }
Index: /trunk/test/unit/org/openstreetmap/josm/tools/RightAndLefthandTrafficTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/RightAndLefthandTrafficTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/RightAndLefthandTrafficTest.java	(revision 11921)
@@ -10,4 +10,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -21,4 +22,13 @@
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     public JOSMTestRules rules = new JOSMTestRules().platform().projection().commands();
+
+    /**
+     * Tests that {@code RightAndLefthandTraffic} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(RightAndLefthandTraffic.class);
+    }
 
     /**
Index: /trunk/test/unit/org/openstreetmap/josm/tools/StreamUtilsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/StreamUtilsTest.java	(revision 11921)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/StreamUtilsTest.java	(revision 11921)
@@ -0,0 +1,31 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.tools;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
+
+/**
+ * Unit tests of {@link StreamUtils} class.
+ */
+public class StreamUtilsTest {
+
+    /**
+     * Setup rule.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
+
+    /**
+     * Tests that {@code StreamUtils} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(StreamUtils.class);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/tools/TerritoriesTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/TerritoriesTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/TerritoriesTest.java	(revision 11921)
@@ -10,4 +10,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -23,8 +24,17 @@
 
     /**
-     * Test of {@link Territories#getIso3166Codes} method.
+     * Tests that {@code Territories} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
      */
     @Test
-    public void testGetIso3166Codes() {
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(Territories.class);
+    }
+
+    /**
+     * Test of {@link Territories#isIso3166Code} method.
+     */
+    @Test
+    public void testIsIso3166Code() {
         check("Paris", new LatLon(48.8567, 2.3508), "EU", "FR", "FX");
     }
Index: /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/UtilsTest.java	(revision 11921)
@@ -18,4 +18,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -29,4 +30,13 @@
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     public JOSMTestRules rules = new JOSMTestRules();
+
+    /**
+     * Tests that {@code Utils} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(Utils.class);
+    }
 
     /**
Index: /trunk/test/unit/org/openstreetmap/josm/tools/date/DateUtilsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/date/DateUtilsTest.java	(revision 11920)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/date/DateUtilsTest.java	(revision 11921)
@@ -16,4 +16,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import net.trajano.commons.testing.UtilityClassTestUtil;
 
 /**
@@ -30,4 +31,13 @@
     @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     public JOSMTestRules test = new JOSMTestRules().i18n().preferences();
+
+    /**
+     * Tests that {@code DateUtils} satisfies utility class criterias.
+     * @throws ReflectiveOperationException if an error occurs
+     */
+    @Test
+    public void testUtilityClass() throws ReflectiveOperationException {
+        UtilityClassTestUtil.assertUtilityClassWellDefined(DateUtils.class);
+    }
 
     /**
@@ -209,12 +219,3 @@
         }
     }
-
-    /**
-     * Unit test to reach 100% code coverage.
-     */
-    @Test
-    @SuppressFBWarnings(value = "ISC_INSTANTIATE_STATIC_CLASS")
-    public void testCoverage() {
-        assertNotNull(new DateUtils());
-    }
 }
