1 package jalview.fts.threedbeacons;
3 import static org.testng.AssertJUnit.assertTrue;
5 import java.util.ArrayList;
6 import java.util.Collection;
7 import java.util.HashSet;
11 import org.testng.Assert;
12 import org.testng.annotations.AfterMethod;
13 import org.testng.annotations.BeforeClass;
14 import org.testng.annotations.BeforeMethod;
15 import org.testng.annotations.Test;
17 import jalview.fts.api.FTSDataColumnI;
18 import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
19 import jalview.fts.core.FTSRestClient;
20 import jalview.fts.core.FTSRestRequest;
21 import jalview.fts.core.FTSRestResponse;
22 import jalview.fts.service.threedbeacons.TDBeaconsFTSRestClient;
23 import jalview.gui.JvOptionPane;
25 public class TDBeaconsFTSRestClientTest
27 @BeforeClass(alwaysRun = true)
28 public void setUpJvOptionPane()
30 JvOptionPane.setInteractiveMode(false);
31 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
34 private FTSRestClient ftsRestClient;
36 @BeforeMethod(alwaysRun = true)
37 public void setUp() throws Exception
39 ftsRestClient = new FTSRestClient()
43 public String getColumnDataConfigFileName()
45 return "/fts/tdbeacons_data_columns.txt";
49 public FTSRestResponse executeRequest(FTSRestRequest ftsRequest)
57 @AfterMethod(alwaysRun = true)
58 public void tearDown() throws Exception
63 public void getAllDefaulDisplayedDataColumns()
65 Assert.assertNotNull(ftsRestClient
66 .getAllDefaultDisplayedFTSDataColumns());
67 System.out.println(ftsRestClient.getAllDefaultDisplayedFTSDataColumns());
68 Assert.assertTrue(!ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
70 Assert.assertEquals(ftsRestClient
71 .getAllDefaultDisplayedFTSDataColumns().size(), 3);
72 // currently 3, may change -> change this test and the nexts accordingly
75 @Test(groups = { "Functional" })
76 public void getPrimaryKeyColumIndexTest()
78 Collection<FTSDataColumnI> wantedFields = ftsRestClient
79 .getAllDefaultDisplayedFTSDataColumns();
83 Assert.assertEquals(foundIndex, -1);
84 foundIndex = ftsRestClient.getPrimaryKeyColumIndex(wantedFields,
86 Assert.assertEquals(foundIndex, 0);
87 foundIndex = ftsRestClient
88 .getPrimaryKeyColumIndex(wantedFields, true);
89 Assert.assertEquals(foundIndex, 1);
93 Assert.fail("Exception thrown while testing...");
97 @Test(groups = { "Functional" })
98 public void getDataColumnsFieldsAsCommaDelimitedString()
100 Collection<FTSDataColumnI> wantedFields = ftsRestClient
101 .getAllDefaultDisplayedFTSDataColumns();
102 String actual = ftsRestClient
103 .getDataColumnsFieldsAsCommaDelimitedString(wantedFields);
104 Assert.assertEquals(actual,
105 "id,uniprot_accession,entry name");
108 @Test(groups = { "Functional" })
109 public void getAllFTSDataColumns()
111 Collection<FTSDataColumnI> allFields = ftsRestClient
112 .getAllFTSDataColumns();
113 Assert.assertNotNull(allFields);
114 //System.out.println(allFields.size());
115 Assert.assertEquals(allFields.size(), 3);
118 @Test(groups = { "Functional" })
119 public void getSearchableDataColumns()
121 Collection<FTSDataColumnI> searchableFields = ftsRestClient
122 .getSearchableDataColumns();
123 Assert.assertNotNull(searchableFields);
124 //System.out.println(searchableFields.size());
125 Assert.assertEquals(searchableFields.size(), 1); //only 1, as of first 3DB test
128 @Test(groups = { "Functional" })
129 public void getPrimaryKeyColumn()
131 FTSDataColumnI expectedPKColumn;
134 expectedPKColumn = ftsRestClient
135 .getDataColumnByNameOrCode("Uniprot Id");
136 Assert.assertNotNull(ftsRestClient.getPrimaryKeyColumn());
137 Assert.assertEquals(ftsRestClient.getPrimaryKeyColumn(),
139 } catch (Exception e)
142 Assert.fail("Exception thrown while testing...");
146 @Test(groups = { "Functional" })
147 public void getDataColumnByNameOrCode()
151 FTSDataColumnI foundDataCol = ftsRestClient
152 .getDataColumnByNameOrCode("uniprot_accession");
153 Assert.assertNotNull(foundDataCol);
154 Assert.assertEquals(foundDataCol.getName(), "UniProt Accession");
155 } catch (Exception e)
158 Assert.fail("Exception thrown while testing...");
162 @Test(groups = { "Functional" })
163 public void getDataColumnGroupById()
165 FTSDataColumnGroupI foundDataColGroup;
168 foundDataColGroup = ftsRestClient.getDataColumnGroupById("g2");
169 Assert.assertNotNull(foundDataColGroup);
170 Assert.assertEquals(foundDataColGroup.getName(), "Name");
171 } catch (Exception e)
177 @Test(groups = { "Functional" })
178 public void getDefaultResponsePageSize()
180 int defaultResSize = ftsRestClient.getDefaultResponsePageSize();
181 Assert.assertEquals(defaultResSize, 100); //why 100 or 500 ? pdb is 100, uniprot 500
184 @Test(groups = { "Functional" })
185 public void getColumnMinWidthTest()
189 FTSDataColumnI foundDataCol = ftsRestClient
190 .getDataColumnByNameOrCode("uniprot_accession");
191 Assert.assertNotNull(foundDataCol);
192 int actualColMinWidth = foundDataCol.getMinWidth();
193 Assert.assertEquals(actualColMinWidth, 50);
194 } catch (Exception e)
197 Assert.fail("Exception thrown while testing...");
200 // could add test for MaxWidth & PreferedWith
202 @Test(groups = { "Functional" })
203 public void getColumnClassTest()
207 FTSDataColumnI foundDataCol = ftsRestClient
208 .getDataColumnByNameOrCode("uniprot_accession");
209 Assert.assertNotNull(foundDataCol);
210 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
212 foundDataCol = ftsRestClient.getDataColumnByNameOrCode("id");
213 Assert.assertNotNull(foundDataCol);
214 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
216 } catch (Exception e)
219 Assert.fail("Exception thrown while testing...");
223 @Test(groups = { "Functional" })
224 public void coverageForEqualsAndHashFunction()
226 Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
227 Collection<FTSDataColumnI> searchableCols = ftsRestClient
228 .getSearchableDataColumns();
229 System.out.println(searchableCols);
230 for (FTSDataColumnI foundCol : searchableCols)
232 System.out.println(foundCol.toString());
233 uniqueSet.add(foundCol);
234 uniqueSet.add(foundCol);
236 Assert.assertTrue(!uniqueSet.isEmpty());
237 //Assert.assertEquals(uniqueSet.size(), 22); -> 1 or 2 currently for 3DB
242 @Test(groups = { "External", "Network" })
243 public void executeRequestTest()
245 List<FTSDataColumnI> wantedFields = new ArrayList<FTSDataColumnI>();
248 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
249 .getDataColumnByNameOrCode("model_category"));
250 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
251 .getDataColumnByNameOrCode("provider"));
252 wantedFields.add(TDBeaconsFTSRestClient.getInstance()
253 .getDataColumnByNameOrCode("created"));
254 } catch (Exception e1)
256 e1.printStackTrace();
258 System.out.println("wantedFields >>" + wantedFields);
260 FTSRestRequest request = new FTSRestRequest();
261 //request.setAllowEmptySeq(false);
262 //request.setResponseSize(100);
263 request.setSearchTerm("01308.json");
264 request.setWantedFields(wantedFields);
265 System.out.println("request : " + request.getFieldToSearchBy());
266 System.out.println(request.toString());
268 FTSRestResponse response;
271 response = TDBeaconsFTSRestClient.getInstance().executeRequest(request);
272 } catch (Exception e)
275 Assert.fail("Couldn't execute webservice call!");
278 //assertTrue(response.getNumberOfItemsFound() > 99);
279 assertTrue(response.getSearchSummary() != null);
280 assertTrue(response.getSearchSummary().size() > 99);