import static org.testng.internal.junit.ArrayAsserts.assertArrayEquals;
import jalview.datamodel.PDBEntry.Type;
+import jalview.gui.JvOptionPane;
import jalview.util.MapList;
import java.io.File;
import java.util.Vector;
import org.testng.Assert;
+import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class SequenceTest
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
Sequence seq;
@BeforeMethod(alwaysRun = true)
public void testIsProtein()
{
// test Protein
- assertTrue(new Sequence("prot","ASDFASDFASDF").isProtein());
+ assertTrue(new Sequence("prot", "ASDFASDFASDF").isProtein());
// test DNA
- assertFalse(new Sequence("prot","ACGTACGTACGT").isProtein());
+ assertFalse(new Sequence("prot", "ACGTACGTACGT").isProtein());
// test RNA
- SequenceI sq = new Sequence("prot","ACGUACGUACGU");
+ SequenceI sq = new Sequence("prot", "ACGUACGUACGU");
assertFalse(sq.isProtein());
// change sequence, should trigger an update of cached result
sq.setSequence("ASDFASDFADSF");
assertEquals(1, sfs.length);
assertSame(sf, sfs[0]);
-
/*
* SequenceFeature on sequence and dataset sequence; returns that on
* sequence
{
sq.getDatasetSequence().setDatasetSequence(sq); // loop!
Assert.fail("Expected Error to be raised when calling setDatasetSequence with self reference");
- } catch (Error e)
+ } catch (IllegalArgumentException e)
{
// TODO Jalview error/exception class for raising implementation errors
assertTrue(e.getMessage().toLowerCase()
@Test(groups = { "Functional" })
public void testCreateDatasetSequence()
{
- SequenceI sq = new Sequence("my","ASDASD");
+ SequenceI sq = new Sequence("my", "ASDASD");
assertNull(sq.getDatasetSequence());
SequenceI rds = sq.createDatasetSequence();
assertNotNull(rds);
sq.addPDBId(new PDBEntry("1PDB", "B", Type.PDB, "filePath/test1"));
sq.addPDBId(new PDBEntry("2PDB", "A", Type.MMCIF, "filePath/test2"));
sq.addPDBId(new PDBEntry("2PDB", "B", Type.MMCIF, "filePath/test2"));
-
+
// these are the same as ones already added
DBRefEntry pdb1pdb = new DBRefEntry("PDB", "version1", "1PDB");
DBRefEntry pdb2pdb = new DBRefEntry("PDB", "version2", "2PDB");
-
List<DBRefEntry> primRefs = Arrays.asList(new DBRefEntry[] { pdb1pdb,
pdb2pdb });
new DBRefEntry("PDB", "version3", "3PDB")); // should do nothing
sq.getDatasetSequence().addDBRef(
new DBRefEntry("PDB", "version4", "4PDB")); // should do nothing
-
- PDBEntry pdbe1a=new PDBEntry("1PDB", "A", Type.PDB, "filePath/test1");
+
+ PDBEntry pdbe1a = new PDBEntry("1PDB", "A", Type.PDB, "filePath/test1");
PDBEntry pdbe1b = new PDBEntry("1PDB", "B", Type.PDB, "filePath/test1");
- PDBEntry pdbe2a=new PDBEntry("2PDB", "A", Type.MMCIF, "filePath/test2");
- PDBEntry pdbe2b = new PDBEntry("2PDB", "B", Type.MMCIF, "filePath/test2");
- sq.getDatasetSequence().addPDBId(
- pdbe1a);
- sq.getDatasetSequence().addPDBId(
- pdbe1b);
+ PDBEntry pdbe2a = new PDBEntry("2PDB", "A", Type.MMCIF,
+ "filePath/test2");
+ PDBEntry pdbe2b = new PDBEntry("2PDB", "B", Type.MMCIF,
+ "filePath/test2");
+ sq.getDatasetSequence().addPDBId(pdbe1a);
+ sq.getDatasetSequence().addPDBId(pdbe1b);
sq.getDatasetSequence().addPDBId(pdbe2a);
sq.getDatasetSequence().addPDBId(pdbe2b);
assertNotNull(sq.getSequenceFeatures());
assertArrayEquals(sq.getSequenceFeatures(),
derived.getSequenceFeatures());
-
+
/*
* verify we have primary db refs *just* for PDB IDs with associated
* PDBEntry objects
12.4f, "group"));
seq1.addPDBId(new PDBEntry("1A70", "B", Type.PDB, "File"));
seq1.addDBRef(new DBRefEntry("EMBL", "1.2", "AZ12345"));
-
+
SequenceI copy = new Sequence(seq1);
assertNull(copy.getDatasetSequence());
// copy has a copy of the sequence feature:
SequenceFeature[] sfs = copy.getSequenceFeatures();
assertEquals(1, sfs.length);
- if (seq1.getDatasetSequence()!=null && copy.getDatasetSequence()==seq1.getDatasetSequence()) {
+ if (seq1.getDatasetSequence() != null
+ && copy.getDatasetSequence() == seq1.getDatasetSequence())
+ {
assertTrue(sfs[0] == seq1.getSequenceFeatures()[0]);
- } else {
+ }
+ else
+ {
assertFalse(sfs[0] == seq1.getSequenceFeatures()[0]);
}
assertTrue(sfs[0].equals(seq1.getSequenceFeatures()[0]));
public void testGetPrimaryDBRefs_nucleotide()
{
SequenceI sq = new Sequence("aseq", "TGATCACTCGACTAGCATCAGCATA", 10, 34);
-
+
// primary - Ensembl
DBRefEntry dbr1 = new DBRefEntry("ENSEMBL", "0", "ENSG1234");
sq.addDBRef(dbr1);
-
+
// not primary - Ensembl 'transcript' mapping of sub-sequence
DBRefEntry dbr2 = new DBRefEntry("ENSEMBL", "0", "ENST1234");
dbr2.setMap(new Mapping(null, new MapList(new int[] { 15, 25 },
// not primary - to protein
DBRefEntry dbr5 = new DBRefEntry("UNIPROT", "0", "Q87654");
sq.addDBRef(dbr5);
-
+
List<DBRefEntry> primaryDBRefs = sq.getPrimaryDBRefs();
assertEquals(2, primaryDBRefs.size());
assertTrue(primaryDBRefs.contains(dbr1));
seq.addDBRef(new DBRefEntry("PDB", "0", "3a6sB"));
// 7 is not a valid chain code:
seq.addDBRef(new DBRefEntry("PDB", "0", "2GIS7"));
-
+
seq.updatePDBIds();
List<PDBEntry> pdbIds = seq.getAllPDBEntries();
assertEquals(4, pdbIds.size());
assertEquals(4, seq.getAllPDBEntries().size());
assertSame(pdbe5, seq.getAllPDBEntries().get(3));
}
+
+ @Test(
+ groups = { "Functional" },
+ expectedExceptions = { IllegalArgumentException.class })
+ public void testSetDatasetSequence_toSelf()
+ {
+ seq.setDatasetSequence(seq);
+ }
+
+ @Test(
+ groups = { "Functional" },
+ expectedExceptions = { IllegalArgumentException.class })
+ public void testSetDatasetSequence_cascading()
+ {
+ SequenceI seq2 = new Sequence("Seq2", "xyz");
+ seq2.createDatasetSequence();
+ seq.setDatasetSequence(seq2);
+ }
}