JAL-3746 apply copyright to tests
[jalview.git] / test / jalview / datamodel / SequenceGroupTest.java
index b0af5c8..622ebb9 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.datamodel;
 
 import static org.testng.Assert.assertEquals;
@@ -14,15 +34,17 @@ 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"})
+  @Test(groups = { "Functional" })
   public void testAddSequence()
   {
     SequenceGroup sg = new SequenceGroup();
@@ -50,16 +72,16 @@ public class SequenceGroupTest
     assertTrue(sg.getSequences().contains(seq3));
   }
 
-  @Test(groups={"Functional"})
+  @Test(groups = { "Functional" })
   public void testAddOrRemove()
   {
     SequenceGroup sg = new SequenceGroup();
     assertTrue(sg.getSequences().isEmpty());
-  
+
     SequenceI seq1 = new Sequence("seq1", "abc");
     SequenceI seq2 = new Sequence("seq2", "abc");
     SequenceI seq3 = new Sequence(seq1);
-  
+
     sg.addOrRemove(seq1, false);
     assertEquals(sg.getSequences().size(), 1);
     sg.addOrRemove(seq2, false);
@@ -74,7 +96,7 @@ public class SequenceGroupTest
     assertFalse(sg.getSequences().contains(seq1));
   }
 
-  @Test(groups={"Functional"})
+  @Test(groups = { "Functional" })
   public void testGetColourScheme()
   {
     SequenceGroup sg = new SequenceGroup();
@@ -89,7 +111,7 @@ public class SequenceGroupTest
     assertSame(scheme, sg.getColourScheme());
   }
 
-  @Test(groups={"Functional"})
+  @Test(groups = { "Functional" })
   public void testSetContext()
   {
     SequenceGroup sg1 = new SequenceGroup();
@@ -301,4 +323,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);
+  }
 }