1 package jalview.ws.dbsources;
3 import static org.testng.AssertJUnit.assertFalse;
4 import static org.testng.AssertJUnit.assertTrue;
6 import jalview.fts.api.FTSData;
7 import jalview.fts.api.FTSDataColumnI;
8 import jalview.fts.api.FTSRestClientI;
9 import jalview.fts.core.FTSRestRequest;
10 import jalview.fts.core.FTSRestResponse;
11 import jalview.fts.service.uniprot.UniProtFTSRestClient;
13 import java.util.ArrayList;
14 import java.util.List;
16 import org.testng.annotations.Test;
19 * A class to verify that remotely fetched data has an expected format and can
20 * be successfully processed by Jalview. This is intended as a first line of
21 * defence and early warning of service affecting changes to data fetched
24 * This is class is not intended to cover remote services e.g. alignment. Nor
25 * should it duplicate tests already provided by other classes (such as
26 * PDBFTSRestClientTest). Or maybe we will relocate those tests here...
28 public class RemoteFormatTest
30 @Test(groups = "Network")
31 public void testFetchUniprot()
36 @Test(groups = "Network")
37 public void testFetchPdb()
42 @Test(groups = "Network")
43 public void testFetchEmbl()
48 @Test(groups = "Network")
49 public void testFetchEmblCDS()
54 @Test(groups = "Network")
55 public void testFetchEnsembl()
60 @Test(groups = "Network")
61 public void testFetchEnsemblGenomes()
66 @Test(groups = "Network")
67 public void testFetchPfamSeed()
72 @Test(groups = "Network")
73 public void testFetchPfamFull()
78 @Test(groups = "Network")
79 public void testFetchRfamSeed()
84 @Test(groups = { "Network" })
85 public void testUniprotFreeTextSearch() throws Exception
87 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
88 FTSRestClientI client = UniProtFTSRestClient.getInstance();
89 wantedFields.add(client.getDataColumnByNameOrCode("id"));
90 wantedFields.add(client.getDataColumnByNameOrCode("entry name"));
91 wantedFields.add(client.getDataColumnByNameOrCode("organism"));
92 wantedFields.add(client.getDataColumnByNameOrCode("reviewed")); // Status
93 wantedFields.add(client.getDataColumnByNameOrCode("length"));
95 FTSRestRequest request = new FTSRestRequest();
96 request.setAllowEmptySeq(false);
97 request.setResponseSize(100);
98 request.setFieldToSearchBy("Search All");
99 request.setSearchTerm("metanephrops"); // lobster!
100 request.setWantedFields(wantedFields);
102 FTSRestResponse response;
103 response = client.executeRequest(request);
104 assertTrue(response.getNumberOfItemsFound() > 20);
105 assertTrue(response.getSearchSummary() != null);
106 assertTrue(response.getSearchSummary().size() > 20);
107 // verify we successfully filtered out the header row (JAL-2485)
108 FTSData header = response.getSearchSummary().iterator().next();
109 assertFalse("Failed to filter out summary header row",
110 header.getSummaryData()[0].toString().equalsIgnoreCase("Entry"));