X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fdatamodel%2FSequenceGroupTest.java;h=622ebb9c3a5a6a3ff087c7ed1bb04d13b5127b16;hb=e9a1c2c372f4bbf6cf658de3dba73ef326b20c20;hp=b0af5c8721e7b7c0ff426aadfc2db9f3a6bafaa2;hpb=331cd27699e0303dd42fd01e293f5fae9445e125;p=jalview.git diff --git a/test/jalview/datamodel/SequenceGroupTest.java b/test/jalview/datamodel/SequenceGroupTest.java index b0af5c8..622ebb9 100644 --- a/test/jalview/datamodel/SequenceGroupTest.java +++ b/test/jalview/datamodel/SequenceGroupTest.java @@ -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 . + * 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 seqs = new ArrayList(); + seqs.add(s1); + seqs.add(s2); + SequenceGroup sg = new SequenceGroup(seqs); + + /* + * verify sg has a copy of the original list + */ + List 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); + } }