X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fdbsources%2FRemoteFormatTest.java;h=d48ff918c5928b48d5872aa58a62cb5841dbad8e;hb=5d003f492184b893aa4c2f437c6021626b573c45;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"); } }