1 package jalview.fts.threedbeacons;
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertTrue;
6 import java.util.ArrayList;
7 import java.util.Collection;
8 import java.util.HashSet;
12 import org.testng.Assert;
13 import org.testng.annotations.AfterMethod;
14 import org.testng.annotations.BeforeClass;
15 import org.testng.annotations.BeforeMethod;
16 import org.testng.annotations.Test;
18 import jalview.fts.api.FTSDataColumnI;
19 import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
20 import jalview.fts.core.FTSRestClient;
21 import jalview.fts.core.FTSRestRequest;
22 import jalview.fts.core.FTSRestResponse;
23 import jalview.fts.service.pdb.PDBFTSRestClient;
24 import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient;
25 import jalview.gui.JvOptionPane;
27 public class TDBeaconsFTSRestClientTest
29 @BeforeClass(alwaysRun = true)
30 public void setUpJvOptionPane()
32 JvOptionPane.setInteractiveMode(false);
33 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
36 private FTSRestClient ftsRestClient;
38 @BeforeMethod(alwaysRun = true)
39 public void setUp() throws Exception
41 ftsRestClient = new FTSRestClient()
45 public String getColumnDataConfigFileName()
47 return "/fts/tdbeacons_data_columns.txt";
51 public FTSRestResponse executeRequest(FTSRestRequest ftsRequest)
59 @AfterMethod(alwaysRun = true)
60 public void tearDown() throws Exception
65 public void getAllDefaulDisplayedDataColumns()
67 // to change when resources.tdbeacons_data_columns.txt is changed
68 Assert.assertNotNull(ftsRestClient
69 .getAllDefaultDisplayedFTSDataColumns());
70 System.out.println(ftsRestClient.getAllDefaultDisplayedFTSDataColumns());
71 Assert.assertTrue(!ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
73 Assert.assertEquals(ftsRestClient
74 .getAllDefaultDisplayedFTSDataColumns().size(), 8);
77 @Test(groups = { "Functional" })
78 public void getPrimaryKeyColumIndexTest()
80 Collection<FTSDataColumnI> wantedFields = ftsRestClient
81 .getAllDefaultDisplayedFTSDataColumns();
85 Assert.assertEquals(foundIndex, -1);
86 foundIndex = ftsRestClient.getPrimaryKeyColumIndex(wantedFields,
88 Assert.assertEquals(foundIndex, 1);
89 foundIndex = ftsRestClient
90 .getPrimaryKeyColumIndex(wantedFields, true);
91 Assert.assertEquals(foundIndex, 2);
95 Assert.fail("Exception thrown while testing...");
99 @Test(groups = { "Functional" })
100 public void getDataColumnsFieldsAsCommaDelimitedString()
102 // to change when resources.tdbeacons_data_columns.txt is changed
103 Collection<FTSDataColumnI> wantedFields = ftsRestClient
104 .getAllDefaultDisplayedFTSDataColumns();
105 String actual = ftsRestClient
106 .getDataColumnsFieldsAsCommaDelimitedString(wantedFields);
107 Assert.assertEquals(actual,
108 "aligned_sequence,model_identifier,provider,id,uniprot_accession,entry_name,model_url,qmean_avg_local_score");
111 @Test(groups = { "Functional" })
112 public void getAllFTSDataColumns()
114 Collection<FTSDataColumnI> allFields = ftsRestClient
115 .getAllFTSDataColumns();
116 Assert.assertNotNull(allFields);
117 //System.out.println(allFields.size());
118 Assert.assertEquals(allFields.size(), 8);
121 @Test(groups = { "Functional" })
122 public void getSearchableDataColumns()
124 // to change when resources.tdbeacons_data_columns.txt is changed
125 Collection<FTSDataColumnI> searchableFields = ftsRestClient
126 .getSearchableDataColumns();
127 Assert.assertNotNull(searchableFields);
128 //System.out.println(searchableFields.size());
129 Assert.assertEquals(searchableFields.size(), 6); //only 1, as of first 3DB test
132 @Test(groups = { "Functional" })
133 public void getPrimaryKeyColumn()
135 // to change when resources.tdbeacons_data_columns.txt is changed
136 FTSDataColumnI expectedPKColumn;
139 expectedPKColumn = ftsRestClient
140 .getDataColumnByNameOrCode("Model id");
141 Assert.assertNotNull(ftsRestClient.getPrimaryKeyColumn());
142 Assert.assertEquals(ftsRestClient.getPrimaryKeyColumn(),
144 } catch (Exception e)
147 Assert.fail("Exception thrown while testing...");
151 @Test(groups = { "Functional" })
152 public void getDataColumnByNameOrCode()
156 FTSDataColumnI foundDataCol = ftsRestClient
157 .getDataColumnByNameOrCode("uniprot_accession");
158 Assert.assertNotNull(foundDataCol);
159 Assert.assertEquals(foundDataCol.getName(), "UniProt Accession");
160 } catch (Exception e)
163 Assert.fail("Exception thrown while testing...");
167 @Test(groups = { "Functional" })
168 public void getDataColumnGroupById()
170 FTSDataColumnGroupI foundDataColGroup;
173 foundDataColGroup = ftsRestClient.getDataColumnGroupById("g2");
174 Assert.assertNotNull(foundDataColGroup);
175 Assert.assertEquals(foundDataColGroup.getName(), "Name");
176 } catch (Exception e)
182 @Test(groups = { "Functional" })
183 public void getDefaultResponsePageSize()
185 int defaultResSize = ftsRestClient.getDefaultResponsePageSize();
186 Assert.assertEquals(defaultResSize, 100); //why 100 or 500 ? pdb is 100, uniprot 500
189 @Test(groups = { "Functional" })
190 public void getColumnMinWidthTest()
194 FTSDataColumnI foundDataCol = ftsRestClient
195 .getDataColumnByNameOrCode("uniprot_accession");
196 Assert.assertNotNull(foundDataCol);
197 int actualColMinWidth = foundDataCol.getMinWidth();
198 Assert.assertEquals(actualColMinWidth, 50);
199 } catch (Exception e)
202 Assert.fail("Exception thrown while testing...");
205 // could add test for MaxWidth & PreferedWith
207 @Test(groups = { "Functional" })
208 public void getColumnClassTest()
212 FTSDataColumnI foundDataCol = ftsRestClient
213 .getDataColumnByNameOrCode("uniprot_accession");
214 Assert.assertNotNull(foundDataCol);
215 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
217 foundDataCol = ftsRestClient.getDataColumnByNameOrCode("id");
218 Assert.assertNotNull(foundDataCol);
219 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
221 } catch (Exception e)
224 Assert.fail("Exception thrown while testing...");
228 @Test(groups = { "Functional" })
229 public void coverageForEqualsAndHashFunction()
231 Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
232 Collection<FTSDataColumnI> searchableCols = ftsRestClient
233 .getSearchableDataColumns();
234 System.out.println(searchableCols);
235 for (FTSDataColumnI foundCol : searchableCols)
237 System.out.println(foundCol.toString());
238 uniqueSet.add(foundCol);
239 uniqueSet.add(foundCol);
241 Assert.assertTrue(!uniqueSet.isEmpty());
242 //Assert.assertEquals(uniqueSet.size(), 22); -> 1 or 2 currently for 3DB
245 @Test(groups = { "Functional" })
246 public void getTDBIdColumIndexTest()
248 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
251 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
252 .getDataColumnByNameOrCode("Model id"));
253 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
254 .getDataColumnByNameOrCode("uniprot_accession"));
255 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
256 .getDataColumnByNameOrCode("entry name"));
257 } catch (Exception e)
263 assertEquals(1, TDBeaconsFTSRestClient.getInstance()
264 .getPrimaryKeyColumIndex(wantedFields, true));
265 // assertEquals(3, TDBeaconsFTSRestClient.getInstance()
266 // .getPrimaryKeyColumIndex(wantedFields, true));
267 } catch (Exception e)
274 @Test(groups = { "External", "Network" })
275 public void executeRequestTest()
277 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
280 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
281 .getDataColumnByNameOrCode("Model id"));
282 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
283 .getDataColumnByNameOrCode("model_url"));
284 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
285 .getDataColumnByNameOrCode("provider"));
286 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
287 .getDataColumnByNameOrCode("qmean_avg_local_score"));
288 } catch (Exception e1)
290 e1.printStackTrace();
292 System.out.println("wantedFields >>" + wantedFields);
294 FTSRestRequest request = new FTSRestRequest();
295 request.setResponseSize(100);
296 request.setFieldToSearchBy("P");
297 request.setSearchTerm("01318.json");
298 request.setWantedFields(wantedFields);
299 System.out.println("request : " + request.getFieldToSearchBy());
300 //System.out.println(request.toString());
302 FTSRestResponse response;
305 response = TDBeaconsFTSRestClient.getInstance().executeRequest(request);
306 } catch (Exception e)
309 Assert.fail("Couldn't execute webservice call!");
312 assertTrue(response.getSearchSummary() != null);
313 assertTrue(response.getNumberOfItemsFound() > 3); //4 atm
314 System.out.println("Search summary : \n" + response.getSearchSummary());
315 //System.out.println(response.getSearchSummary().size());