JAL-1805 modified test setup's so the are ran for groups which requires them
[jalview.git] / test / jalview / gui / AlignViewportTest.java
1 package jalview.gui;
2
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertSame;
5
6 import jalview.datamodel.Alignment;
7 import jalview.datamodel.AlignmentI;
8 import jalview.datamodel.PDBEntry;
9 import jalview.datamodel.PDBEntry.Type;
10 import jalview.datamodel.Sequence;
11 import jalview.datamodel.SequenceI;
12
13 import org.testng.annotations.BeforeMethod;
14 import org.testng.annotations.Test;
15
16 public class AlignViewportTest
17 {
18
19   AlignmentI al;
20   AlignViewport testee;
21
22  @BeforeMethod(alwaysRun = true)
23   public void setUp()
24   {
25     SequenceI seq1 = new Sequence("Seq1", "ABC");
26     SequenceI seq2 = new Sequence("Seq2", "ABC");
27     SequenceI seq3 = new Sequence("Seq3", "ABC");
28     SequenceI[] seqs = new SequenceI[]
29     { seq1, seq2, seq3 };
30     al = new Alignment(seqs);
31     al.setDataset(null);
32     testee = new AlignViewport(al);
33   }
34
35   @Test(groups ={ "Functional" })
36   public void testCollateForPdb()
37   {
38     /*
39      * Set up sequence pdb ids
40      */
41     PDBEntry pdb1 = new PDBEntry("1ABC", "A", Type.PDB, "1ABC.pdb");
42     PDBEntry pdb2 = new PDBEntry("2ABC", "A", Type.PDB, "2ABC.pdb");
43     PDBEntry pdb3 = new PDBEntry("3ABC", "A", Type.PDB, "3ABC.pdb");
44
45     /*
46      * seq1 and seq3 refer to 1ABC, seq2 to 2ABC, none to 3ABC
47      */
48     al.getSequenceAt(0).getDatasetSequence()
49             .addPDBId(
50             new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb"));
51     al.getSequenceAt(2).getDatasetSequence()
52             .addPDBId(
53             new PDBEntry("1ABC", "B", Type.PDB, "1ABC.pdb"));
54     al.getSequenceAt(1).getDatasetSequence()
55             .addPDBId(
56             new PDBEntry("2ABC", "C", Type.PDB, "2ABC.pdb"));
57     /*
58      * Add a second chain PDB xref to Seq2 - should not result in a duplicate in
59      * the results
60      */
61     al.getSequenceAt(1).getDatasetSequence()
62             .addPDBId(new PDBEntry("2ABC", "D", Type.PDB, "2ABC.pdb"));
63     /*
64      * Seq3 refers to 3abc - this does not match 3ABC (as the code stands)
65      */
66     al.getSequenceAt(2).getDatasetSequence()
67             .addPDBId(new PDBEntry("3abc", "D", Type.PDB, "3ABC.pdb"));
68
69     /*
70      * run method under test
71      */
72     SequenceI[][] seqs = testee.collateForPDB(new PDBEntry[]
73     { pdb1, pdb2, pdb3 });
74
75     // seq1 and seq3 refer to PDBEntry[0]
76     assertEquals(2, seqs[0].length);
77     assertSame(al.getSequenceAt(0), seqs[0][0]);
78     assertSame(al.getSequenceAt(2), seqs[0][1]);
79
80     // seq2 refers to PDBEntry[1]
81     assertEquals(1, seqs[1].length);
82     assertSame(al.getSequenceAt(1), seqs[1][0]);
83
84     // no sequence refers to PDBEntry[2]
85     assertEquals(0, seqs[2].length);
86   }
87 }