1 package jalview.datamodel;
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertFalse;
5 import static org.testng.Assert.assertNotNull;
6 import static org.testng.Assert.assertNull;
7 import static org.testng.Assert.assertSame;
8 import static org.testng.Assert.assertTrue;
9 import static org.testng.Assert.fail;
11 import jalview.schemes.NucleotideColourScheme;
13 import org.testng.annotations.Test;
15 public class SequenceGroupTest
18 public void testAddSequence()
20 SequenceGroup sg = new SequenceGroup();
21 assertTrue(sg.getSequences().isEmpty());
23 SequenceI seq1 = new Sequence("seq1", "abc");
24 SequenceI seq2 = new Sequence("seq2", "abc");
25 SequenceI seq3 = new Sequence(seq1);
27 sg.addSequence(null, false);
28 assertTrue(sg.getSequences().isEmpty());
29 sg.addSequence(seq1, false);
30 assertEquals(sg.getSequences().size(), 1);
31 assertTrue(sg.getSequences().contains(seq1));
32 // adding the same sequence again does nothing
33 sg.addSequence(seq1, false);
34 assertEquals(sg.getSequences().size(), 1);
35 assertTrue(sg.getSequences().contains(seq1));
36 sg.addSequence(seq2, false);
37 sg.addSequence(seq2, false);
38 sg.addSequence(seq3, false);
39 assertEquals(sg.getSequences().size(), 3);
40 assertTrue(sg.getSequences().contains(seq1));
41 assertTrue(sg.getSequences().contains(seq2));
42 assertTrue(sg.getSequences().contains(seq3));
46 public void testAddOrRemove()
48 SequenceGroup sg = new SequenceGroup();
49 assertTrue(sg.getSequences().isEmpty());
51 SequenceI seq1 = new Sequence("seq1", "abc");
52 SequenceI seq2 = new Sequence("seq2", "abc");
53 SequenceI seq3 = new Sequence(seq1);
55 sg.addOrRemove(seq1, false);
56 assertEquals(sg.getSequences().size(), 1);
57 sg.addOrRemove(seq2, false);
58 assertEquals(sg.getSequences().size(), 2);
59 sg.addOrRemove(seq3, false);
60 assertEquals(sg.getSequences().size(), 3);
61 assertTrue(sg.getSequences().contains(seq1));
62 assertTrue(sg.getSequences().contains(seq2));
63 assertTrue(sg.getSequences().contains(seq3));
64 sg.addOrRemove(seq1, false);
65 assertEquals(sg.getSequences().size(), 2);
66 assertFalse(sg.getSequences().contains(seq1));
70 public void testGetColourScheme()
72 SequenceGroup sg = new SequenceGroup();
73 assertNotNull(sg.getGroupColourScheme());
74 assertNull(sg.getColourScheme());
76 sg.setGroupColourScheme(null);
77 assertNull(sg.getColourScheme());
79 NucleotideColourScheme scheme = new NucleotideColourScheme();
80 sg.setColourScheme(scheme);
81 assertSame(scheme, sg.getColourScheme());
85 public void testSetContext()
87 SequenceGroup sg1 = new SequenceGroup();
88 SequenceGroup sg2 = new SequenceGroup();
89 SequenceGroup sg3 = new SequenceGroup();
90 assertNull(sg1.getContext());
92 assertNull(sg1.getContext());
95 sg1.setContext(sg1); // self-reference :-O
96 fail("Expected exception");
97 } catch (IllegalArgumentException e)
100 assertNull(sg1.getContext());
103 assertSame(sg2, sg1.getContext());
107 sg3.setContext(sg1); // circular reference :-O
108 fail("Expected exception");
109 } catch (IllegalArgumentException e)
112 assertNull(sg3.getContext());