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 Assert.assertNotNull(ftsRestClient
68 .getAllDefaultDisplayedFTSDataColumns());
69 System.out.println(ftsRestClient.getAllDefaultDisplayedFTSDataColumns());
70 Assert.assertTrue(!ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
72 Assert.assertEquals(ftsRestClient
73 .getAllDefaultDisplayedFTSDataColumns().size(), 3);
74 // currently 3, may change -> change this test and the nexts accordingly
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, 0);
89 foundIndex = ftsRestClient
90 .getPrimaryKeyColumIndex(wantedFields, true);
91 Assert.assertEquals(foundIndex, 1);
95 Assert.fail("Exception thrown while testing...");
99 @Test(groups = { "Functional" })
100 public void getDataColumnsFieldsAsCommaDelimitedString()
102 Collection<FTSDataColumnI> wantedFields = ftsRestClient
103 .getAllDefaultDisplayedFTSDataColumns();
104 String actual = ftsRestClient
105 .getDataColumnsFieldsAsCommaDelimitedString(wantedFields);
106 Assert.assertEquals(actual,
107 "id,uniprot_accession,entry name");
110 @Test(groups = { "Functional" })
111 public void getAllFTSDataColumns()
113 Collection<FTSDataColumnI> allFields = ftsRestClient
114 .getAllFTSDataColumns();
115 Assert.assertNotNull(allFields);
116 //System.out.println(allFields.size());
117 Assert.assertEquals(allFields.size(), 3);
120 @Test(groups = { "Functional" })
121 public void getSearchableDataColumns()
123 Collection<FTSDataColumnI> searchableFields = ftsRestClient
124 .getSearchableDataColumns();
125 Assert.assertNotNull(searchableFields);
126 //System.out.println(searchableFields.size());
127 Assert.assertEquals(searchableFields.size(), 1); //only 1, as of first 3DB test
130 @Test(groups = { "Functional" })
131 public void getPrimaryKeyColumn()
133 FTSDataColumnI expectedPKColumn;
136 expectedPKColumn = ftsRestClient
137 .getDataColumnByNameOrCode("Uniprot Id");
138 Assert.assertNotNull(ftsRestClient.getPrimaryKeyColumn());
139 Assert.assertEquals(ftsRestClient.getPrimaryKeyColumn(),
141 } catch (Exception e)
144 Assert.fail("Exception thrown while testing...");
148 @Test(groups = { "Functional" })
149 public void getDataColumnByNameOrCode()
153 FTSDataColumnI foundDataCol = ftsRestClient
154 .getDataColumnByNameOrCode("uniprot_accession");
155 Assert.assertNotNull(foundDataCol);
156 Assert.assertEquals(foundDataCol.getName(), "UniProt Accession");
157 } catch (Exception e)
160 Assert.fail("Exception thrown while testing...");
164 @Test(groups = { "Functional" })
165 public void getDataColumnGroupById()
167 FTSDataColumnGroupI foundDataColGroup;
170 foundDataColGroup = ftsRestClient.getDataColumnGroupById("g2");
171 Assert.assertNotNull(foundDataColGroup);
172 Assert.assertEquals(foundDataColGroup.getName(), "Name");
173 } catch (Exception e)
179 @Test(groups = { "Functional" })
180 public void getDefaultResponsePageSize()
182 int defaultResSize = ftsRestClient.getDefaultResponsePageSize();
183 Assert.assertEquals(defaultResSize, 100); //why 100 or 500 ? pdb is 100, uniprot 500
186 @Test(groups = { "Functional" })
187 public void getColumnMinWidthTest()
191 FTSDataColumnI foundDataCol = ftsRestClient
192 .getDataColumnByNameOrCode("uniprot_accession");
193 Assert.assertNotNull(foundDataCol);
194 int actualColMinWidth = foundDataCol.getMinWidth();
195 Assert.assertEquals(actualColMinWidth, 50);
196 } catch (Exception e)
199 Assert.fail("Exception thrown while testing...");
202 // could add test for MaxWidth & PreferedWith
204 @Test(groups = { "Functional" })
205 public void getColumnClassTest()
209 FTSDataColumnI foundDataCol = ftsRestClient
210 .getDataColumnByNameOrCode("uniprot_accession");
211 Assert.assertNotNull(foundDataCol);
212 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
214 foundDataCol = ftsRestClient.getDataColumnByNameOrCode("id");
215 Assert.assertNotNull(foundDataCol);
216 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
218 } catch (Exception e)
221 Assert.fail("Exception thrown while testing...");
225 @Test(groups = { "Functional" })
226 public void coverageForEqualsAndHashFunction()
228 Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
229 Collection<FTSDataColumnI> searchableCols = ftsRestClient
230 .getSearchableDataColumns();
231 System.out.println(searchableCols);
232 for (FTSDataColumnI foundCol : searchableCols)
234 System.out.println(foundCol.toString());
235 uniqueSet.add(foundCol);
236 uniqueSet.add(foundCol);
238 Assert.assertTrue(!uniqueSet.isEmpty());
239 //Assert.assertEquals(uniqueSet.size(), 22); -> 1 or 2 currently for 3DB
242 @Test(groups = { "Functional" })
243 public void getTDBIdColumIndexTest()
245 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
248 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
249 .getDataColumnByNameOrCode("id"));
250 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
251 .getDataColumnByNameOrCode("uniprot_accession"));
252 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
253 .getDataColumnByNameOrCode("entry name"));
254 } catch (Exception e)
260 assertEquals(1, PDBFTSRestClient.getInstance()
261 .getPrimaryKeyColumIndex(wantedFields, true));
262 // assertEquals(4, PDBFTSRestClient.getInstance()
263 // .getPrimaryKeyColumIndex(wantedFields, false));
264 } catch (Exception e)
271 @Test(groups = { "External", "Network" })
272 public void executeRequestTest()
274 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
277 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
278 .getDataColumnByNameOrCode("id"));
279 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
280 .getDataColumnByNameOrCode("uniprot_accession"));
281 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
282 .getDataColumnByNameOrCode("entry name"));
283 } catch (Exception e1)
285 e1.printStackTrace();
287 System.out.println("wantedFields >>" + wantedFields);
289 FTSRestRequest request = new FTSRestRequest();
290 request.setResponseSize(100);
291 request.setFieldToSearchBy("P");
292 request.setSearchTerm("01308.json");
293 request.setWantedFields(wantedFields);
294 System.out.println("request : " + request.getFieldToSearchBy());
295 //System.out.println(request.toString());
297 FTSRestResponse response;
300 response = TDBeaconsFTSRestClient.getInstance().executeRequest(request);
301 } catch (Exception e)
304 Assert.fail("Couldn't execute webservice call!");
307 assertTrue(response.getSearchSummary() != null);
308 assertTrue(response.getNumberOfItemsFound() > 3);
309 System.out.println(response.getSearchSummary());
310 System.out.println(response.getSearchSummary().size());