1 package jalview.fts.threedbeacons;
3 import static org.testng.Assert.assertNull;
4 import static org.testng.AssertJUnit.assertEquals;
5 import static org.testng.AssertJUnit.assertTrue;
8 import java.nio.charset.StandardCharsets;
9 import java.util.ArrayList;
10 import java.util.Collection;
11 import java.util.HashSet;
12 import java.util.List;
15 import org.testng.Assert;
16 import org.testng.annotations.AfterMethod;
17 import org.testng.annotations.BeforeClass;
18 import org.testng.annotations.BeforeMethod;
19 import org.testng.annotations.Test;
21 import jalview.fts.api.FTSDataColumnI;
22 import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
23 import jalview.fts.core.FTSRestClient;
24 import jalview.fts.core.FTSRestRequest;
25 import jalview.fts.core.FTSRestResponse;
26 import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient;
27 import jalview.gui.JvOptionPane;
29 public class TDBeaconsFTSRestClientTest
31 @BeforeClass(alwaysRun = true)
32 public void setUpJvOptionPane()
34 JvOptionPane.setInteractiveMode(false);
35 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
38 private FTSRestClient ftsRestClient;
40 @BeforeMethod(alwaysRun = true)
41 public void setUp() throws Exception
43 ftsRestClient = new FTSRestClient()
47 public String getColumnDataConfigFileName()
49 return "/fts/tdbeacons_data_columns.txt";
53 public FTSRestResponse executeRequest(FTSRestRequest ftsRequest)
61 @AfterMethod(alwaysRun = true)
62 public void tearDown() throws Exception
67 public void getAllDefaulDisplayedDataColumns()
69 // to change when resources.tdbeacons_data_columns.txt is changed
71 ftsRestClient.getAllDefaultDisplayedFTSDataColumns());
73 .println(ftsRestClient.getAllDefaultDisplayedFTSDataColumns());
74 Assert.assertTrue(!ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
77 ftsRestClient.getAllDefaultDisplayedFTSDataColumns().size(),
81 @Test(groups = { "Functional" })
82 public void getPrimaryKeyColumIndexTest()
84 Collection<FTSDataColumnI> wantedFields = ftsRestClient
85 .getAllDefaultDisplayedFTSDataColumns();
89 Assert.assertEquals(foundIndex, -1);
90 foundIndex = ftsRestClient.getPrimaryKeyColumIndex(wantedFields,
92 Assert.assertEquals(foundIndex, 10);
93 foundIndex = ftsRestClient.getPrimaryKeyColumIndex(wantedFields,
95 Assert.assertEquals(foundIndex, 11);
99 Assert.fail("Exception thrown while testing...");
103 @Test(groups = { "Functional" })
104 public void getDataColumnsFieldsAsCommaDelimitedString()
106 // to change when resources.tdbeacons_data_columns.txt is changed
107 Collection<FTSDataColumnI> wantedFields = ftsRestClient
108 .getAllDefaultDisplayedFTSDataColumns();
109 String actual = ftsRestClient
110 .getDataColumnsFieldsAsCommaDelimitedString(wantedFields);
111 Assert.assertEquals(actual,
112 "model_identifier,provider,model_category,uniprot_start,uniprot_end,resolution,qmean_avg_local_score,coverage,created,entry_name,model_url");
115 @Test(groups = { "Functional" })
116 public void getAllFTSDataColumns()
118 Collection<FTSDataColumnI> allFields = ftsRestClient
119 .getAllFTSDataColumns();
120 Assert.assertNotNull(allFields);
121 // System.out.println(allFields.size());
122 Assert.assertEquals(allFields.size(), 15);
125 @Test(groups = { "Functional" })
126 public void getSearchableDataColumns()
128 // to change when resources.tdbeacons_data_columns.txt is changed
129 Collection<FTSDataColumnI> searchableFields = ftsRestClient
130 .getSearchableDataColumns();
131 Assert.assertNotNull(searchableFields);
132 // System.out.println(searchableFields.size());
133 Assert.assertEquals(searchableFields.size(), 1); // only 1: uniprot
137 @Test(groups = { "Functional" })
138 public void getPrimaryKeyColumn()
140 // to change when resources.tdbeacons_data_columns.txt is changed
141 FTSDataColumnI expectedPKColumn;
144 expectedPKColumn = ftsRestClient.getDataColumnByNameOrCode("Url");
145 Assert.assertNotNull(ftsRestClient.getPrimaryKeyColumn());
146 Assert.assertEquals(ftsRestClient.getPrimaryKeyColumn(),
148 } catch (Exception e)
151 Assert.fail("Exception thrown while testing...");
155 @Test(groups = { "Functional" })
156 public void getDataColumnByNameOrCode()
160 FTSDataColumnI foundDataCol = ftsRestClient
161 .getDataColumnByNameOrCode("uniprot_accession");
162 Assert.assertNotNull(foundDataCol);
163 Assert.assertEquals(foundDataCol.getName(), "UniProt Accession");
164 } catch (Exception e)
167 Assert.fail("Exception thrown while testing...");
171 @Test(groups = { "Functional" })
172 public void getDataColumnGroupById()
174 FTSDataColumnGroupI foundDataColGroup;
177 foundDataColGroup = ftsRestClient.getDataColumnGroupById("g2");
178 Assert.assertNotNull(foundDataColGroup);
179 Assert.assertEquals(foundDataColGroup.getName(), "Quality");
180 } catch (Exception e)
186 @Test(groups = { "Functional" })
187 public void getDefaultResponsePageSize()
189 int defaultResSize = ftsRestClient.getDefaultResponsePageSize();
190 Assert.assertEquals(defaultResSize, 100); // why 100 or 500 ? pdb is 100,
194 @Test(groups = { "Functional" })
195 public void getColumnMinWidthTest()
199 FTSDataColumnI foundDataCol = ftsRestClient
200 .getDataColumnByNameOrCode("uniprot_accession");
201 Assert.assertNotNull(foundDataCol);
202 int actualColMinWidth = foundDataCol.getMinWidth();
203 Assert.assertEquals(actualColMinWidth, 50);
204 } catch (Exception e)
207 Assert.fail("Exception thrown while testing...");
210 // could add test for MaxWidth & PreferedWith
212 @Test(groups = { "Functional" })
213 public void getColumnClassTest()
217 FTSDataColumnI foundDataCol = ftsRestClient
218 .getDataColumnByNameOrCode("uniprot_accession");
219 Assert.assertNotNull(foundDataCol);
220 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
222 foundDataCol = ftsRestClient.getDataColumnByNameOrCode("id");
223 Assert.assertNotNull(foundDataCol);
224 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
226 } catch (Exception e)
229 Assert.fail("Exception thrown while testing...");
233 @Test(groups = { "Functional" })
234 public void coverageForEqualsAndHashFunction()
236 Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
237 Collection<FTSDataColumnI> searchableCols = ftsRestClient
238 .getSearchableDataColumns();
239 System.out.println(searchableCols);
240 for (FTSDataColumnI foundCol : searchableCols)
242 System.out.println(foundCol.toString());
243 uniqueSet.add(foundCol);
244 uniqueSet.add(foundCol);
246 Assert.assertTrue(!uniqueSet.isEmpty());
247 // Assert.assertEquals(uniqueSet.size(), 22); -> 1 or 2 currently for 3DB
250 @Test(groups = { "Functional" })
251 public void getTDBIdColumIndexTest()
253 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
256 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
257 .getDataColumnByNameOrCode("Model id"));
258 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
259 .getDataColumnByNameOrCode("uniprot_accession"));
260 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
261 .getDataColumnByNameOrCode("entry name"));
262 } catch (Exception e)
268 assertEquals(4, TDBeaconsFTSRestClient.getInstance()
269 .getPrimaryKeyColumIndex(wantedFields, true));
270 // assertEquals(3, TDBeaconsFTSRestClient.getInstance()
271 // .getPrimaryKeyColumIndex(wantedFields, true));
272 } catch (Exception e)
278 private static String mockRequest = "P38398.json";
280 private static String mockResponse = "{\"uniprot_entry\":{\"sequence_length\":1863,\"ac\":\"P38398\",\"id\":\"BRCA1_HUMAN\"},\"structures\":[{\"model_identifier\":\"4igk\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2012-12-17\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":1.75,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/4igk_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1t15\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2004-04-15\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":1.85,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1t15_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"4ifi\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2012-12-14\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.2,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/4ifi_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1t29\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2004-04-20\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.3,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1t29_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3pxb\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2010-12-09\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.5,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3pxb_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"4y2g\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2015-02-09\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.5,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/4y2g_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1y98\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2004-12-14\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.5,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1y98_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1jnx\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2001-07-26\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.5,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1jnx_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3pxa\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2010-12-09\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.55,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3pxa_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3k0h\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2009-09-24\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.7,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3k0h_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3k0k\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2009-09-24\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.7,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3k0k_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1n5o\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2002-11-06\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.8,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1n5o_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3pxc\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2010-12-09\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.8,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3pxc_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3pxd\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2010-12-09\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.8,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3pxd_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1t2u\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2004-04-22\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.8,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1t2u_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3k15\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2009-09-25\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.8,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3k15_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3pxe\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2010-12-09\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":2.85,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3pxe_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3k16\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2009-09-25\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":3.0,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3k16_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"4ofb\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2014-01-14\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":3.05,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/4ofb_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"3coj\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2008-03-28\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":3.21,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/3coj_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"7lyb\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2021-03-06\",\"sequence_identity\":100.0,\"uniprot_start\":1,\"uniprot_end\":100,\"resolution\":3.28,\"coverage\":5.37,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/7lyb_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1t2v\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2004-04-22\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":3.3,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1t2v_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"4y18\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2015-02-06\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":3.5,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/4y18_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"4jlu\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2013-03-13\",\"sequence_identity\":100.0,\"uniprot_start\":1649,\"uniprot_end\":1859,\"resolution\":3.5,\"coverage\":11.33,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/4jlu_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"4u4a\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2014-07-23\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":3.51,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/4u4a_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"2ing\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2006-10-07\",\"sequence_identity\":100.0,\"uniprot_start\":1649,\"uniprot_end\":1859,\"resolution\":3.6,\"coverage\":11.33,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/2ing_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"7jzv\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2020-09-02\",\"sequence_identity\":99.0,\"uniprot_start\":2,\"uniprot_end\":104,\"resolution\":3.9,\"coverage\":5.53,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/7jzv_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"6g2i\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2018-03-23\",\"sequence_identity\":100.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"resolution\":5.9,\"coverage\":11.49,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/6g2i_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1jm7\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2001-07-17\",\"sequence_identity\":100.0,\"uniprot_start\":1,\"uniprot_end\":110,\"resolution\":null,\"coverage\":5.9,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1jm7_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"1oqa\",\"model_category\":\"EXPERIMENTALLY DETERMINED\",\"provider\":\"PDBE\",\"created\":\"2003-03-07\",\"sequence_identity\":100.0,\"uniprot_start\":1755,\"uniprot_end\":1863,\"resolution\":null,\"coverage\":5.85,\"model_url\":\"https://www.ebi.ac.uk/pdbe/static/entry/1oqa_updated.cif\",\"model_format\":\"MMCIF\"},{\"model_identifier\":\"6138930b772bfbf9fe34f912\",\"model_category\":\"TEMPLATE-BASED\",\"provider\":\"SWISSMODEL\",\"created\":\"2021-09-08\",\"sequence_identity\":1.0,\"uniprot_start\":1646,\"uniprot_end\":1859,\"coverage\":0.115,\"qmean_version\":\"4.2.0\",\"qmean_avg_local_score\":0.776,\"model_url\":\"https://beta.swissmodel.expasy.org/3d-beacons/uniprot/P38398.pdb?range=1646-1859&template=6g2i.1.K&provider=swissmodel\",\"model_format\":\"PDB\"},{\"model_identifier\":\"6138930b772bfbf9fe34f916\",\"model_category\":\"TEMPLATE-BASED\",\"provider\":\"SWISSMODEL\",\"created\":\"2021-09-08\",\"sequence_identity\":1.0,\"uniprot_start\":1,\"uniprot_end\":103,\"coverage\":0.055,\"qmean_version\":\"4.2.0\",\"qmean_avg_local_score\":0.655,\"model_url\":\"https://beta.swissmodel.expasy.org/3d-beacons/uniprot/P38398.pdb?range=1-103&template=1jm7.1.A&provider=swissmodel\",\"model_format\":\"PDB\"},{\"model_identifier\":\"AF-P38398-F1\",\"model_category\":\"Deep learning\",\"provider\":\"AlphaFold DB\",\"created\":\"2021-07-01\",\"sequence_identity\":1.0,\"uniprot_start\":1,\"uniprot_end\":1863,\"coverage\":100.0,\"model_url\":\"https://alphafold.ebi.ac.uk/files/AF-P38398-F1-model_v1.cif\",\"model_format\":\"MMCIF\"}]}";
282 public static void setMock()
284 FTSRestClient.createMockFTSRestClient(
285 (FTSRestClient) TDBeaconsFTSRestClient.getInstance(),
286 mockRequest, mockResponse);
289 private static String dev_url = "https://wwwdev.ebi.ac.uk/pdbe/pdbe-kb/3dbeacons/api/uniprot/summary/";
292 * check that the mock request and response are the same as the response from
293 * a live 3D-beacons endpoint
297 @Test(groups = { "Network", "Integration" })
298 public void verifyMockTDBRequest() throws Exception
300 URL tdb_req = new URL(dev_url + mockRequest);
301 byte[] resp = tdb_req.openStream().readAllBytes();
302 String tresp = new String(resp, StandardCharsets.UTF_8);
303 assertEquals(mockResponse.trim(), tresp.trim());
306 @Test(groups = { "Functional" })
307 public void testMockTDBRequest()
311 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
314 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
315 .getDataColumnByNameOrCode("Model Id"));
316 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
317 .getDataColumnByNameOrCode("model_url"));
318 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
319 .getDataColumnByNameOrCode("provider"));
320 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
321 .getDataColumnByNameOrCode("model_category"));
322 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
323 .getDataColumnByNameOrCode("qmean_avg_local_score"));
324 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
325 .getDataColumnByNameOrCode("uniprot_start"));
326 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
327 .getDataColumnByNameOrCode("uniprot_end"));
328 } catch (Exception e1)
330 e1.printStackTrace();
332 System.out.println("wantedFields >>" + wantedFields);
334 FTSRestRequest request = new FTSRestRequest();
335 FTSRestResponse response;
337 request.setResponseSize(100);
338 request.setFieldToSearchBy("");
339 request.setWantedFields(wantedFields);
340 // check 404 behaviour
341 request.setSearchTerm("P00000.json");
345 response = TDBeaconsFTSRestClient.getInstance()
346 .executeRequest(request);
348 assertNull(response);
349 } catch (Exception e)
352 Assert.fail("Unexpected failure during mock 3DBeacons 404 test");
355 // check 200 behaviour
356 request.setSearchTerm("P38398.json");
357 System.out.println("request : " + request.getFieldToSearchBy());
358 // System.out.println(request.toString());
362 response = TDBeaconsFTSRestClient.getInstance()
363 .executeRequest(request);
364 } catch (Exception e)
367 Assert.fail("Couldn't execute webservice call!");
370 assertTrue(response.getSearchSummary() != null);
371 assertTrue(response.getNumberOfItemsFound() > 3); // 4 atm
372 System.out.println("Search summary : \n" + response.getSearchSummary());
374 // System.out.println(response.getSearchSummary().size());
377 @Test(groups = { "External", "Network" })
378 public void executeRequestTest()
380 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
383 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
384 .getDataColumnByNameOrCode("Model Id"));
385 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
386 .getDataColumnByNameOrCode("model_url"));
387 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
388 .getDataColumnByNameOrCode("provider"));
389 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
390 .getDataColumnByNameOrCode("model_category"));
391 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
392 .getDataColumnByNameOrCode("qmean_avg_local_score"));
393 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
394 .getDataColumnByNameOrCode("uniprot_start"));
395 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
396 .getDataColumnByNameOrCode("uniprot_end"));
397 } catch (Exception e1)
399 e1.printStackTrace();
401 System.out.println("wantedFields >>" + wantedFields);
403 FTSRestRequest request = new FTSRestRequest();
404 request.setResponseSize(100);
405 request.setFieldToSearchBy("");
406 request.setSearchTerm("P01318.json");
407 request.setWantedFields(wantedFields);
408 System.out.println("request : " + request.getFieldToSearchBy());
409 // System.out.println(request.toString());
411 FTSRestResponse response;
414 response = TDBeaconsFTSRestClient.getInstance()
415 .executeRequest(request);
416 } catch (Exception e)
419 Assert.fail("Couldn't execute webservice call!");
422 assertTrue(response.getSearchSummary() != null);
423 assertTrue(response.getNumberOfItemsFound() > 3); // 4 atm
424 System.out.println("Search summary : \n" + response.getSearchSummary());
425 // System.out.println(response.getSearchSummary().size());