3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertFalse;
5 import static org.testng.Assert.assertNull;
6 import static org.testng.Assert.assertSame;
7 import static org.testng.Assert.assertTrue;
9 import jalview.datamodel.PDBEntry;
10 import jalview.datamodel.PDBEntry.Type;
11 import jalview.datamodel.Sequence;
12 import jalview.datamodel.SequenceI;
16 import org.testng.annotations.BeforeClass;
17 import org.testng.annotations.Test;
19 public class StructureViewerTest
22 @BeforeClass(alwaysRun = true)
23 public void setUpJvOptionPane()
25 JvOptionPane.setInteractiveMode(false);
26 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
29 @Test(groups = "Functional")
30 public void testGetSequencesForPdbs()
32 StructureViewer sv = new StructureViewer(null);
34 assertNull(sv.getSequencesForPdbs(null, null));
36 PDBEntry pdbe1 = new PDBEntry("1A70", "A", Type.PDB, "path1");
37 PDBEntry pdbe2 = new PDBEntry("3A6S", "A", Type.PDB, "path2");
38 PDBEntry pdbe3 = new PDBEntry("1A70", "B", Type.PDB, "path1");
39 PDBEntry pdbe4 = new PDBEntry("1GAQ", "A", Type.PDB, null);
40 PDBEntry pdbe5 = new PDBEntry("3A6S", "B", Type.PDB, "path2");
41 PDBEntry pdbe6 = new PDBEntry("1GAQ", "B", Type.PDB, null);
42 PDBEntry[] pdbs = new PDBEntry[] { pdbe1, pdbe2, pdbe3, pdbe4, pdbe5,
46 * seq1 ... seq6 associated with pdbe1 ... pdbe6
48 SequenceI[] seqs = new SequenceI[pdbs.length];
49 for (int i = 0; i < seqs.length; i++)
51 seqs[i] = new Sequence("Seq" + i, "abc");
55 * pdbe3/5/6 should get removed as having a duplicate file path
57 Map<PDBEntry, SequenceI[]> uniques = sv.getSequencesForPdbs(pdbs, seqs);
58 assertTrue(uniques.containsKey(pdbe1));
59 assertTrue(uniques.containsKey(pdbe2));
60 assertFalse(uniques.containsKey(pdbe3));
61 assertTrue(uniques.containsKey(pdbe4));
62 assertFalse(uniques.containsKey(pdbe5));
63 assertFalse(uniques.containsKey(pdbe6));
65 // 1A70 associates with seq1 and seq3
66 SequenceI[] ss = uniques.get(pdbe1);
67 assertEquals(ss.length, 2);
68 assertSame(seqs[0], ss[0]);
69 assertSame(seqs[2], ss[1]);
71 // 3A6S has seq2 and seq5
72 ss = uniques.get(pdbe2);
73 assertEquals(ss.length, 2);
74 assertSame(seqs[1], ss[0]);
75 assertSame(seqs[4], ss[1]);
77 // 1GAQ has seq4 and seq6
78 ss = uniques.get(pdbe4);
79 assertEquals(ss.length, 2);
80 assertSame(seqs[3], ss[0]);
81 assertSame(seqs[5], ss[1]);