JAL-2405 additional checks for circular reference in context or dataset
[jalview.git] / test / jalview / datamodel / SequenceGroupTest.java
index 65549f2..6e1c2db 100644 (file)
@@ -10,6 +10,8 @@ import static org.testng.Assert.fail;
 
 import jalview.schemes.NucleotideColourScheme;
 
+import junit.extensions.PA;
+
 import org.testng.annotations.Test;
 
 public class SequenceGroupTest
@@ -111,6 +113,21 @@ public class SequenceGroupTest
       // expected
       assertNull(sg3.getContext());
     }
+
+    /*
+     * use PrivilegedAccessor to 'force' a SequenceGroup with
+     * a circular context reference
+     */
+    PA.setValue(sg2, "context", sg2);
+    try
+    {
+      sg3.setContext(sg2); // circular reference in sg2
+      fail("Expected exception");
+    } catch (IllegalArgumentException e)
+    {
+      // expected
+      assertNull(sg3.getContext());
+    }
   }
 
   @Test(groups = { "Functional" })