X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Fws%2Fdbsources%2FRemoteFormatTest.java;h=d48ff918c5928b48d5872aa58a62cb5841dbad8e;hb=b4f40b3f92e17f4373ecf047b393f579bc88164d;hp=c390efca0814b7c50ae8ae451f875d81a9fc0ce4;hpb=b6000a31609b8d7f6b9cca8df5d4878d393e2b24;p=jalview.git
diff --git a/test/jalview/ws/dbsources/RemoteFormatTest.java b/test/jalview/ws/dbsources/RemoteFormatTest.java
index c390efc..d48ff91 100644
--- a/test/jalview/ws/dbsources/RemoteFormatTest.java
+++ b/test/jalview/ws/dbsources/RemoteFormatTest.java
@@ -1,15 +1,36 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.ws.dbsources;
-import static org.testng.AssertJUnit.assertEquals;
-import static org.testng.AssertJUnit.assertFalse;
-import static org.testng.AssertJUnit.assertNotNull;
-import static org.testng.AssertJUnit.assertTrue;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.assertTrue;
+import jalview.analysis.AlignSeq;
import jalview.bin.Cache;
import jalview.datamodel.AlignmentI;
-import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.SequenceI;
+import jalview.ext.ensembl.EnsemblGenomes;
import jalview.fts.api.FTSData;
import jalview.fts.api.FTSDataColumnI;
import jalview.fts.api.FTSRestClientI;
@@ -22,7 +43,8 @@ import jalview.ws.seqfetcher.DbSourceProxy;
import java.util.ArrayList;
import java.util.List;
-import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
/**
@@ -39,90 +61,73 @@ public class RemoteFormatTest
{
SequenceFetcher sf;
- @Test(groups = "Network")
- public void testFetchUniprot() throws Exception
- {
- List sps = sf.getSourceProxy(DBRefSource.UNIPROT);
- assertFalse(sps.isEmpty());
- AlignmentI response = sps.get(0).getSequenceRecords("P30419");
- assertNotNull(response);
- assertEquals(response.getHeight(), 1);
- SequenceI sq = response.getSequenceAt(0);
- assertTrue("No PDBEntry on sequence.", sq.getAllPDBEntries().size() > 0);
- assertTrue("No DBRef on sequence.", sq.getDBRefs().length > 0);
- List dbr = sq.getPrimaryDBRefs();
- assertFalse(dbr.isEmpty());
- assertEquals(
- "Sequence start/end doesn't match number of residues in sequence",
- sq.getEnd() - sq.getStart() + 1, sq.getLength());
- }
-
- @Test(groups = "Network")
- public void testFetchPdb()
- {
- // 1QIP
- }
-
- @Test(groups = "Network")
- public void testFetchEmbl()
- {
- // X53828
- }
-
- @Test(groups = "Network")
- public void testFetchEmblCDS()
- {
- // CAA37824
- }
-
- @Test(groups = "Network")
- public void testFetchEnsembl()
- {
- // ENSG00000157764
- }
-
- @Test(groups = "Network")
- public void testFetchEnsemblGenomes()
+ @BeforeTest(alwaysRun = true)
+ public void setUp() throws Exception
{
- // DDB_G0283883
- }
+ Cache.loadProperties("test/jalview/io/testProps.jvprops");
+ // ensure 'add annotation from structure' is selected
+ Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
+ Boolean.TRUE.toString());
+ Cache.applicationProperties.setProperty("ADD_SS_ANN",
+ Boolean.TRUE.toString());
- @Test(groups = "Network")
- public void testFetchPfamSeed()
- {
- // PF03760
+ sf = new SequenceFetcher();
}
- @Test(groups = "Network")
- public void testFetchPfamFull()
+ @DataProvider(name = "AccessionData")
+ protected Object[][] getAccessions()
{
- // PF03760
+ return new Object[][] { { DBRefSource.UNIPROT, "P30419" },
+ { DBRefSource.PDB, "1QIP" },
+ { DBRefSource.EMBL, "X53828" },
+ { DBRefSource.EMBLCDS, "CAA37824" },
+ { DBRefSource.ENSEMBL, "ENSG00000157764" },
+ { new EnsemblGenomes().getDbSource(), "DDB_G0283883" },
+ { new PfamFull().getDbSource(), "PF03760" },
+ { new PfamSeed().getDbSource(), "PF03760" },
+ { new RfamSeed().getDbSource(), "RF00014" } };
}
- @Test(groups = "Network")
- public void testFetchRfamSeed()
+ @Test(groups = "Network", dataProvider = "AccessionData")
+ public void testFetchAccession(String dbSource, String accessionId)
+ throws Exception
{
- // RF00014
+ System.out.println("Fetching " + accessionId + " from " + dbSource);
+ List sps = sf.getSourceProxy(dbSource);
+ assertFalse(sps.isEmpty());
+ AlignmentI al = sps.get(0).getSequenceRecords(accessionId);
+ assertNotNull(al);
+ assertTrue(al.getHeight() > 0);
+ SequenceI sq = al.getSequenceAt(0);
+ // suppress this check as only Uniprot and PDB acquire PDB refs
+ // assertTrue(sq.getAllPDBEntries().size() > 0, "No PDBEntry on sequence.");
+ assertTrue(sq.getDBRefs().size() > 0, "No DBRef on sequence.");
+ // suppress this test as only certain databases provide 'primary' dbrefs
+ // assertFalse(sq.getPrimaryDBRefs().isEmpty());
+ int length = AlignSeq.extractGaps("-. ", sq.getSequenceAsString())
+ .length();
+ assertEquals(sq.getEnd() - sq.getStart() + 1, length,
+ "Sequence start/end doesn't match number of residues in sequence");
}
@Test(groups = { "Network" })
public void testUniprotFreeTextSearch() throws Exception
{
- List wantedFields = new ArrayList();
+ List wantedFields = new ArrayList<>();
FTSRestClientI client = UniProtFTSRestClient.getInstance();
wantedFields.add(client.getDataColumnByNameOrCode("id"));
wantedFields.add(client.getDataColumnByNameOrCode("entry name"));
wantedFields.add(client.getDataColumnByNameOrCode("organism"));
wantedFields.add(client.getDataColumnByNameOrCode("reviewed")); // Status
wantedFields.add(client.getDataColumnByNameOrCode("length"));
-
+
FTSRestRequest request = new FTSRestRequest();
request.setAllowEmptySeq(false);
request.setResponseSize(100);
request.setFieldToSearchBy("Search All");
request.setSearchTerm("metanephrops"); // lobster!
request.setWantedFields(wantedFields);
-
+
FTSRestResponse response;
response = client.executeRequest(request);
assertTrue(response.getNumberOfItemsFound() > 20);
@@ -130,20 +135,8 @@ public class RemoteFormatTest
assertTrue(response.getSearchSummary().size() > 20);
// verify we successfully filtered out the header row (JAL-2485)
FTSData header = response.getSearchSummary().iterator().next();
- assertFalse("Failed to filter out summary header row",
- header.getSummaryData()[0].toString().equalsIgnoreCase("Entry"));
- }
-
- @BeforeMethod(alwaysRun = true)
- public void setUp() throws Exception
- {
- Cache.loadProperties("test/jalview/io/testProps.jvprops");
- // ensure 'add annotation from structure' is selected
- Cache.applicationProperties.setProperty("STRUCT_FROM_PDB",
- Boolean.TRUE.toString());
- Cache.applicationProperties.setProperty("ADD_SS_ANN",
- Boolean.TRUE.toString());
-
- sf = new SequenceFetcher(false);
+ assertFalse(
+ header.getSummaryData()[0].toString().equalsIgnoreCase("Entry"),
+ "Failed to filter out summary header row");
}
}