Merge branch 'feature/JAL-3127_seqidChainshading' into merge/JAL-3127
[jalview.git] / test / jalview / datamodel / SequenceGroupTest.java
index 80790ed..8419d4c 100644 (file)
@@ -9,15 +9,19 @@ import static org.testng.Assert.assertSame;
 import static org.testng.Assert.assertTrue;
 import static org.testng.Assert.fail;
 
+import jalview.analysis.Conservation;
 import jalview.schemes.NucleotideColourScheme;
 import jalview.schemes.PIDColourScheme;
 
 import java.awt.Color;
-
-import junit.extensions.PA;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 
 import org.testng.annotations.Test;
 
+import junit.extensions.PA;
+
 public class SequenceGroupTest
 {
   @Test(groups={"Functional"})
@@ -232,6 +236,11 @@ public class SequenceGroupTest
     sg.setName("g1");
     sg.setDescription("desc");
     sg.setColourScheme(new PIDColourScheme());
+    Conservation cons = new Conservation("Cons", 2,
+            Collections.<SequenceI> emptyList(), 3, 12);
+    PA.setValue(cons, "consSequence", new Sequence("s", "abc"));
+    sg.getGroupColourScheme().setConservation(cons);
+    sg.getGroupColourScheme().setConsensus(new Profiles(null));
     sg.setDisplayBoxes(false);
     sg.setDisplayText(false);
     sg.setColourText(true);
@@ -253,8 +262,12 @@ public class SequenceGroupTest
     SequenceGroup sg2 = new SequenceGroup(sg);
     assertEquals(sg2.getName(), sg.getName());
     assertEquals(sg2.getDescription(), sg.getDescription());
-    assertSame(sg2.getGroupColourScheme(), sg.getGroupColourScheme());
+    assertNotSame(sg2.getGroupColourScheme(), sg.getGroupColourScheme());
     assertSame(sg2.getColourScheme(), sg.getColourScheme());
+    assertSame(PA.getValue(sg2.getGroupColourScheme(), "consensus"),
+            PA.getValue(sg.getGroupColourScheme(), "consensus"));
+    assertSame(PA.getValue(sg2.getGroupColourScheme(), "conservation"),
+            PA.getValue(sg.getGroupColourScheme(), "conservation"));
     assertEquals(sg2.getDisplayBoxes(), sg.getDisplayBoxes());
     assertEquals(sg2.getDisplayText(), sg.getDisplayText());
     assertEquals(sg2.getColourText(), sg.getColourText());
@@ -290,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);
+  }
 }