JAL-3198 SequenceGroup 'bulk constructor' without duplicates check
[jalview.git] / test / jalview / datamodel / SequenceGroupTest.java
index b0af5c8..8419d4c 100644 (file)
@@ -14,12 +14,14 @@ import jalview.schemes.NucleotideColourScheme;
 import jalview.schemes.PIDColourScheme;
 
 import java.awt.Color;
+import java.util.ArrayList;
 import java.util.Collections;
-
-import junit.extensions.PA;
+import java.util.List;
 
 import org.testng.annotations.Test;
 
+import junit.extensions.PA;
+
 public class SequenceGroupTest
 {
   @Test(groups={"Functional"})
@@ -301,4 +303,36 @@ public class SequenceGroupTest
      */
     assertNull(sg2.getContext());
   }
+
+  @Test(groups = { "Functional" })
+  public void testConstructor_list()
+  {
+    SequenceI s1 = new Sequence("abcde", "fg");
+    SequenceI s2 = new Sequence("foo", "bar");
+    List<SequenceI> seqs = new ArrayList<SequenceI>();
+    seqs.add(s1);
+    seqs.add(s2);
+    SequenceGroup sg = new SequenceGroup(seqs);
+
+    /*
+     * verify sg has a copy of the original list
+     */
+    List<SequenceI> sgList = sg.getSequences();
+    assertNotSame(sgList, seqs);
+    assertEquals(sgList, seqs);
+
+    /*
+     * add to sgList, original is unchanged
+     */
+    sg.addSequence(new Sequence("bar", "foo"), false);
+    assertEquals(sgList.size(), 3);
+    assertEquals(seqs.size(), 2);
+
+    /*
+     * delete from original, sgList is unchanged
+     */
+    seqs.remove(s1);
+    assertEquals(sgList.size(), 3);
+    assertEquals(seqs.size(), 1);
+  }
 }