X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fseqfetcher%2FDbRefFetcherTest.java;h=d9b1d90122c2248caa7266eb34eaef57276216ff;hb=8bbcfb93404decd6d660ca32b69a29f8a1f34e82;hp=07167bdfcbba7099ab70209e1dc41bf304e98a17;hpb=7ab5d6b0ba5fec1ea4a4239e79c476d841622485;p=jalview.git diff --git a/test/jalview/ws/seqfetcher/DbRefFetcherTest.java b/test/jalview/ws/seqfetcher/DbRefFetcherTest.java index 07167bd..d9b1d90 100644 --- a/test/jalview/ws/seqfetcher/DbRefFetcherTest.java +++ b/test/jalview/ws/seqfetcher/DbRefFetcherTest.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,19 +20,23 @@ */ package jalview.ws.seqfetcher; -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.List; +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertNotNull; +import static org.testng.AssertJUnit.assertTrue; +import jalview.analysis.CrossRef; +import jalview.datamodel.AlignmentI; +import jalview.datamodel.DBRefEntry; import jalview.datamodel.DBRefSource; -import jalview.ws.DBRefFetcher; +import jalview.util.DBRefUtils; import jalview.ws.SequenceFetcher; -import jalview.ws.dbsources.das.api.jalviewSourceI; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import java.util.ArrayList; +import java.util.List; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; /** * @author jimp @@ -44,9 +48,10 @@ public class DbRefFetcherTest /** * @throws java.lang.Exception */ - @BeforeClass + @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { + jalview.bin.Cache.initLogger(); } /** @@ -57,7 +62,7 @@ public class DbRefFetcherTest { } - @Test + @Test(groups ={ "Functional" }) public void testStandardProtDbs() { String[] defdb = DBRefSource.PROTEINDBS; @@ -94,4 +99,45 @@ public class DbRefFetcherTest uniprot != null && i < 2); } + @Test(groups = + { "External" }) + public void testEmblUniprotProductRecovery() throws Exception + { + String retrievalId = "CAA23748"; // "V00488"; + DbSourceProxy embl = new SequenceFetcher().getSourceProxy(DBRefSource.EMBL).get(0); + assertNotNull("Couldn't find the EMBL retrieval client", embl); + verifyProteinNucleotideXref(retrievalId, embl); + } + + @Test(groups = + { "External" }) + public void testEmblCDSUniprotProductRecovery() throws Exception + { + String retrievalId = "AAH29712"; + DbSourceProxy embl = new SequenceFetcher().getSourceProxy( + DBRefSource.EMBLCDS).get(0); + assertNotNull("Couldn't find the EMBL retrieval client", embl); + verifyProteinNucleotideXref(retrievalId, embl); + } + + private void verifyProteinNucleotideXref(String retrievalId, + DbSourceProxy embl) throws Exception + { + AlignmentI alsq = embl.getSequenceRecords(retrievalId); + assertNotNull("Couldn't find the EMBL record " + retrievalId, alsq); + assertEquals("Didn't retrieve right number of records", 1, alsq.getHeight()); + DBRefEntry[] dr = DBRefUtils.selectRefs(alsq.getSequenceAt(0).getDBRef(), DBRefSource.PROTEINSEQ); + assertNotNull(dr); + assertEquals("Expected a single Uniprot cross reference", 1, dr.length); + assertEquals("Expected cross refernce map to be one amino acid", dr[0] + .getMap().getMappedWidth(), 1); + assertEquals("Expected local refernce map to be 3 nucleotides", dr[0] + .getMap().getWidth(), 3); + AlignmentI sprods = CrossRef.findXrefSequences(alsq.getSequencesArray(), true, dr[0].getSource(), alsq.getDataset()); + assertNotNull( + "Couldn't recover cross reference sequence from dataset. Was it ever added ?", + sprods); + + + } }