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