X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fseqfetcher%2FDbRefFetcherTest.java;h=8b223d1efb5432486347e79299cc3a663bd78189;hb=57738a1f3c19b1c3a00bd3ac5108f8cd0af32f99;hp=5265a72d14e557a2033dec7b59abb63d8d3f3a51;hpb=c7e8d3a34d2bac0206a942b393e9b6d4d52c55a2;p=jalview.git diff --git a/test/jalview/ws/seqfetcher/DbRefFetcherTest.java b/test/jalview/ws/seqfetcher/DbRefFetcherTest.java index 5265a72..8b223d1 100644 --- a/test/jalview/ws/seqfetcher/DbRefFetcherTest.java +++ b/test/jalview/ws/seqfetcher/DbRefFetcherTest.java @@ -21,6 +21,7 @@ package jalview.ws.seqfetcher; import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; @@ -29,14 +30,18 @@ import jalview.datamodel.AlignmentI; import jalview.datamodel.DBRefEntry; import jalview.datamodel.DBRefSource; import jalview.datamodel.FeatureProperties; +import jalview.datamodel.Sequence; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; +import jalview.gui.JvOptionPane; import jalview.util.DBRefUtils; +import jalview.ws.DBRefFetcher; import jalview.ws.SequenceFetcher; import jalview.ws.dbsources.Pdb; import jalview.ws.dbsources.Uniprot; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import org.testng.annotations.AfterClass; @@ -50,23 +55,52 @@ import org.testng.annotations.Test; public class DbRefFetcherTest { + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + /** * @throws java.lang.Exception */ @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { - jalview.bin.Cache.initLogger(); + jalview.bin.Console.initLogger(); } /** * @throws java.lang.Exception */ - @AfterClass + @AfterClass(alwaysRun = true) public static void tearDownAfterClass() throws Exception { } + @Test(groups = { "Network" }) + public void checkUniprotCanonicalFlagSet() + { + // TODO - mock this - for moment it is a live request. + SequenceI uniprotSeq = new Sequence("FER1_SPIOL", + "MAATTTTMMGMATTFVPKPQAPPMMAALPSNTGRSLFGLKTGSRGGRMTMAAYKVTLVTPTGNVEFQCPDDV" + + "YILDAAEEEGIDLPYSCRAGSCSSCAGKLKTGSLNQDDQSFLDDDQIDEGWVLTCAAYPVSDVTIETHKEEE" + + "LTA"); + DBRefFetcher dbr = new DBRefFetcher(new SequenceI[] { uniprotSeq }); + dbr.fetchDBRefs(true); + List primRefs = uniprotSeq.getPrimaryDBRefs(); + assertNotNull(primRefs); + assertTrue(primRefs.size() > 0); + boolean canonicalUp = false; + for (DBRefEntry ref : primRefs) + { + assertEquals(DBRefSource.UNIPROT, ref.getCanonicalSourceName()); + canonicalUp |= ref.isCanonical(); + } + assertTrue("No Canonical Uniprot reference detected", canonicalUp); + } + /** * Tests that standard protein database sources include Uniprot (as the first) * and also PDB. (Additional sources are dependent on availability of DAS @@ -75,7 +109,9 @@ public class DbRefFetcherTest @Test(groups = { "Functional" }) public void testStandardProtDbs() { - String[] defdb = DBRefSource.PROTEINDBS; + List defdb = new ArrayList(); + defdb.addAll(Arrays.asList(DBRefSource.PROTEINDBS)); + defdb.add(DBRefSource.PDB); List srces = new ArrayList(); SequenceFetcher sfetcher = new SequenceFetcher(); boolean pdbFound = false; @@ -123,8 +159,8 @@ public class DbRefFetcherTest public void testEmblUniprotProductRecovery() throws Exception { String retrievalId = "V00488"; - DbSourceProxy embl = new SequenceFetcher().getSourceProxy( - DBRefSource.EMBL).get(0); + DbSourceProxy embl = new SequenceFetcher() + .getSourceProxy(DBRefSource.EMBL).get(0); assertNotNull("Couldn't find the EMBL retrieval client", embl); verifyProteinNucleotideXref(retrievalId, embl); } @@ -139,8 +175,8 @@ public class DbRefFetcherTest public void testEmblCDSUniprotProductRecovery() throws Exception { String retrievalId = "AAH29712"; - DbSourceProxy embl = new SequenceFetcher().getSourceProxy( - DBRefSource.EMBLCDS).get(0); + DbSourceProxy embl = new SequenceFetcher() + .getSourceProxy(DBRefSource.EMBLCDS).get(0); assertNotNull("Couldn't find the EMBL retrieval client", embl); verifyProteinNucleotideXref(retrievalId, embl); } @@ -160,35 +196,33 @@ public class DbRefFetcherTest assertEquals("Didn't retrieve right number of records", 1, alsq.getHeight()); SequenceI seq = alsq.getSequenceAt(0); - assertEquals("Wrong sequence name", embl.getDbSource() + "|" - + retrievalId, seq.getName()); - SequenceFeature[] sfs = seq.getSequenceFeatures(); - assertNotNull("Sequence features missing", sfs); - assertTrue( - "Feature not CDS", - FeatureProperties.isCodingFeature(embl.getDbSource(), - sfs[0].getType())); - assertEquals(embl.getDbSource(), sfs[0].getFeatureGroup()); - DBRefEntry[] dr = DBRefUtils.selectRefs(seq.getDBRef(), - DBRefSource.PROTEINSEQ); + assertEquals("Wrong sequence name", + embl.getDbSource() + "|" + retrievalId, seq.getName()); + List sfs = seq.getSequenceFeatures(); + assertFalse("Sequence features missing", sfs.isEmpty()); + assertTrue("Feature not CDS", FeatureProperties + .isCodingFeature(embl.getDbSource(), sfs.get(0).getType())); + assertEquals(embl.getDbSource(), sfs.get(0).getFeatureGroup()); + List dr = DBRefUtils.selectRefs(seq.getDBRefs(), + new String[] + { DBRefSource.UNIPROT }); assertNotNull(dr); - assertEquals("Expected a single Uniprot cross reference", 1, dr.length); - assertEquals("Expected cross reference map to be one amino acid", dr[0] - .getMap().getMappedWidth(), 1); - assertEquals("Expected local reference map to be 3 nucleotides", dr[0] - .getMap().getWidth(), 3); - AlignmentI sprods = CrossRef.findXrefSequences( - alsq.getSequencesArray(), true, dr[0].getSource(), - alsq.getDataset()); + assertEquals("Expected a single Uniprot cross reference", 1, dr.size()); + assertEquals("Expected cross reference map to be one amino acid", + dr.get(0).getMap().getMappedWidth(), 1); + assertEquals("Expected local reference map to be 3 nucleotides", + dr.get(0).getMap().getWidth(), 3); + AlignmentI sprods = new CrossRef(alsq.getSequencesArray(), alsq) + .findXrefSequences(dr.get(0).getSource(), true); assertNotNull( "Couldn't recover cross reference sequence from dataset. Was it ever added ?", sprods); assertEquals("Didn't xref right number of records", 1, sprods.getHeight()); SequenceI proteinSeq = sprods.getSequenceAt(0); - assertEquals(proteinSeq.getSequenceAsString(), dr[0].getMap().getTo() - .getSequenceAsString()); - assertEquals(dr[0].getSource() + "|" + dr[0].getAccessionId(), + assertEquals(proteinSeq.getSequenceAsString(), + dr.get(0).getMap().getTo().getSequenceAsString()); + assertEquals(dr.get(0).getSource() + "|" + dr.get(0).getAccessionId(), proteinSeq.getName()); } }