JAL-3438 spotless for 2.11.2.0
[jalview.git] / test / jalview / viewmodel / styles / ViewStyleTest.java
index bcc6f78..3019afa 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -24,16 +24,26 @@ import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertFalse;
 import static org.testng.AssertJUnit.assertTrue;
 
+import jalview.gui.JvOptionPane;
+
 import java.awt.Color;
 import java.lang.reflect.Field;
 import java.util.Random;
 
 import org.testng.AssertJUnit;
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
 public class ViewStyleTest
 {
 
+  @BeforeClass(alwaysRun = true)
+  public void setUpJvOptionPane()
+  {
+    JvOptionPane.setInteractiveMode(false);
+    JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+  }
+
   Random r = new Random();
 
   /**
@@ -50,15 +60,15 @@ public class ViewStyleTest
    * @throws IllegalArgumentException
    */
   @Test(groups = { "Functional" })
-  public void testCopyConstructor() throws IllegalArgumentException,
-          IllegalAccessException
+  public void testCopyConstructor()
+          throws IllegalArgumentException, IllegalAccessException
   {
     ViewStyle vs1 = new ViewStyle();
     Field[] fields = ViewStyle.class.getDeclaredFields();
     for (Field field : fields)
     {
       field.setAccessible(true);
-      if (!copyConstructorIgnores(field.getName()))
+      if (!copyConstructorIgnores(field))
       {
         changeValue(vs1, field);
       }
@@ -68,27 +78,39 @@ public class ViewStyleTest
 
     for (Field field1 : fields)
     {
-      final Object value1 = field1.get(vs1);
-      final Object value2 = field1.get(vs2);
-      String msg = "Mismatch in " + field1.getName() + "(" + value1 + "/"
-              + value2 + ") - not set in copy constructor?";
-      assertEquals(msg, value1, value2);
+      if (!copyConstructorIgnores(field1))
+      {
+        final Object value1 = field1.get(vs1);
+        final Object value2 = field1.get(vs2);
+        String msg = "Mismatch in " + field1.getName() + "(" + value1 + "/"
+                + value2 + ") - not set in copy constructor?";
+        assertEquals(msg, value1, value2);
+      }
     }
     assertEquals("Hashcode not equals", vs1.hashCode(), vs2.hashCode());
   }
 
   /**
-   * Add any field names in here that we expect to be ignored by the copy
+   * Add tests here for any fields that we expect to be ignored by the copy
    * constructor
    * 
-   * @param name
+   * @param field
    * @return
    */
-  private boolean copyConstructorIgnores(String name)
+  private boolean copyConstructorIgnores(Field field)
   {
     /*
-     * currently none!
+     * ignore instrumentation added by jacoco for test coverage
      */
+    if (field.isSynthetic())
+    {
+      return true;
+    }
+    if (field.getType().toString().contains("com_atlassian_clover"))
+    {
+      return true;
+    }
+
     return false;
   }
 
@@ -152,8 +174,8 @@ public class ViewStyleTest
     }
     else if (type.equals(Color.class))
     {
-      field.set(vs, Color.RED.equals(field.get(vs)) ? Color.BLACK
-              : Color.RED);
+      field.set(vs,
+              Color.RED.equals(field.get(vs)) ? Color.BLACK : Color.RED);
     }
     else
     {
@@ -186,8 +208,8 @@ public class ViewStyleTest
    * @throws IllegalArgumentException
    */
   @Test(groups = { "Functional" })
-  public void testEquals() throws IllegalArgumentException,
-          IllegalAccessException
+  public void testEquals()
+          throws IllegalArgumentException, IllegalAccessException
   {
     ViewStyle vs1 = new ViewStyle();
     ViewStyle vs2 = new ViewStyle(vs1);
@@ -200,19 +222,22 @@ public class ViewStyleTest
     Field[] fields = ViewStyle.class.getDeclaredFields();
     for (Field field : fields)
     {
-      field.setAccessible(true);
-      Object oldValue = field.get(vs2);
-      changeValue(vs2, field);
-      assertFalse("equals method ignores " + field.getName(),
-              vs1.equals(vs2));
-
-      if (vs1.hashCode() == vs2.hashCode())
+      if (!copyConstructorIgnores(field))
       {
-        // uncomment next line to see which fields hashCode ignores
-        // System.out.println("hashCode ignores " + field.getName());
+        field.setAccessible(true);
+        Object oldValue = field.get(vs2);
+        changeValue(vs2, field);
+        assertFalse("equals method ignores " + field.getName(),
+                vs1.equals(vs2));
+
+        if (vs1.hashCode() == vs2.hashCode())
+        {
+          // uncomment next line to see which fields hashCode ignores
+          // System.out.println("hashCode ignores " + field.getName());
+        }
+        // restore original value before testing the next field
+        field.set(vs2, oldValue);
       }
-      // restore original value before testing the next field
-      field.set(vs2, oldValue);
     }
   }
 }