1 package jalview.fts.core;
3 import jalview.fts.api.FTSDataColumnI;
4 import jalview.fts.api.FTSDataColumnI.FTSDataColumnGroupI;
6 import java.util.Collection;
7 import java.util.HashSet;
10 import org.testng.Assert;
11 import org.testng.annotations.BeforeMethod;
12 import org.testng.annotations.Test;
14 public class FTSRestClientTest
16 private FTSRestClient ftsRestClient;
18 @BeforeMethod(alwaysRun = true)
21 ftsRestClient = new FTSRestClient()
25 public String getColumnDataConfigFileName()
27 return "/fts/uniprot_data_columns.txt";
31 public FTSRestResponse executeRequest(FTSRestRequest ftsRequest)
39 @Test(groups = { "Functional" })
40 public void getPrimaryKeyColumIndexTest()
42 Collection<FTSDataColumnI> wantedFields = ftsRestClient
43 .getAllDefaulDisplayedDataColumns();
47 Assert.assertEquals(foundIndex, -1);
48 foundIndex = ftsRestClient.getPrimaryKeyColumIndex(wantedFields,
50 Assert.assertEquals(foundIndex, 0);
51 foundIndex = ftsRestClient
52 .getPrimaryKeyColumIndex(wantedFields, true);
53 Assert.assertEquals(foundIndex, 1);
57 Assert.fail("Exception thrown while testing...");
61 @Test(groups = { "Functional" })
62 public void getAllDefaulDisplayedDataColumns()
64 Assert.assertNotNull(ftsRestClient.getAllDefaulDisplayedDataColumns());
65 Assert.assertTrue(!ftsRestClient.getAllDefaulDisplayedDataColumns()
67 Assert.assertEquals(ftsRestClient.getAllDefaulDisplayedDataColumns()
71 @Test(groups = { "Functional" })
72 public void getDataColumnsFieldsAsCommaDelimitedString()
74 Collection<FTSDataColumnI> wantedFields = ftsRestClient
75 .getAllDefaulDisplayedDataColumns();
76 String actual = ftsRestClient
77 .getDataColumnsFieldsAsCommaDelimitedString(wantedFields);
78 Assert.assertEquals(actual,
79 "entry name,protein names,genes,organism,created,last-modified");
83 @Test(groups = { "Functional" })
84 public void getAllFTSDataColumns()
86 Collection<FTSDataColumnI> allFields = ftsRestClient
87 .getAllFTSDataColumns();
88 Assert.assertNotNull(allFields);
89 Assert.assertEquals(allFields.size(), 116);
92 @Test(groups = { "Functional" })
93 public void getSearchableDataColumns()
95 Collection<FTSDataColumnI> searchalbeFields = ftsRestClient
96 .getSearchableDataColumns();
97 Assert.assertNotNull(searchalbeFields);
98 Assert.assertEquals(searchalbeFields.size(), 28);
101 @Test(groups = { "Functional" })
102 public void getPrimaryKeyColumn()
104 FTSDataColumnI expectedPKColumn;
107 expectedPKColumn = ftsRestClient
108 .getDataColumnByNameOrCode("Entry Name");
109 Assert.assertNotNull(ftsRestClient.getPrimaryKeyColumn());
110 Assert.assertEquals(ftsRestClient.getPrimaryKeyColumn(),
112 } catch (Exception e)
115 Assert.fail("Exception thrown while testing...");
119 @Test(groups = { "Functional" })
120 public void getDataColumnByNameOrCode()
124 FTSDataColumnI foundDataCol = ftsRestClient
125 .getDataColumnByNameOrCode("genes");
126 Assert.assertNotNull(foundDataCol);
127 Assert.assertEquals(foundDataCol.getName(), "Gene Names");
128 } catch (Exception e)
131 Assert.fail("Exception thrown while testing...");
135 @Test(groups = { "Functional" })
136 public void getDataColumnGroupById()
138 FTSDataColumnGroupI foundDataColGroup;
141 foundDataColGroup = ftsRestClient.getDataColumnGroupById("g3");
142 Assert.assertNotNull(foundDataColGroup);
143 Assert.assertEquals(foundDataColGroup.getName(), "Names & Taxonomy");
144 } catch (Exception e)
150 @Test(groups = { "Functional" })
151 public void getDefaultResponsePageSize()
153 int defaultResSize = ftsRestClient.getDefaultResponsePageSize();
154 Assert.assertEquals(defaultResSize, 100);
157 @Test(groups = { "Functional" })
158 public void getColumnMinWidthTest()
162 FTSDataColumnI foundDataCol = ftsRestClient
163 .getDataColumnByNameOrCode("Protein names");
164 Assert.assertNotNull(foundDataCol);
165 int actualColMinWidth = foundDataCol.getMinWidth();
166 Assert.assertEquals(actualColMinWidth, 300);
167 } catch (Exception e)
170 Assert.fail("Exception thrown while testing...");
174 @Test(groups = { "Functional" })
175 public void getColumnMaxWidthTest()
179 FTSDataColumnI foundDataCol = ftsRestClient
180 .getDataColumnByNameOrCode("Protein names");
181 Assert.assertNotNull(foundDataCol);
182 int actualColMinWidth = foundDataCol.getMaxWidth();
183 Assert.assertEquals(actualColMinWidth, 1500);
184 } catch (Exception e)
187 Assert.fail("Exception thrown while testing...");
191 @Test(groups = { "Functional" })
192 public void getColumnPreferredWidthTest()
196 FTSDataColumnI foundDataCol = ftsRestClient
197 .getDataColumnByNameOrCode("Protein names");
198 Assert.assertNotNull(foundDataCol);
199 int actualColMinWidth = foundDataCol.getPreferredWidth();
200 Assert.assertEquals(actualColMinWidth, 500);
201 } catch (Exception e)
204 Assert.fail("Exception thrown while testing...");
208 @Test(groups = { "Functional" })
209 public void getColumnClassTest()
213 FTSDataColumnI foundDataCol = ftsRestClient
214 .getDataColumnByNameOrCode("Protein names");
215 Assert.assertNotNull(foundDataCol);
216 Assert.assertEquals(foundDataCol.getDataColumnClass(), String.class);
217 foundDataCol = ftsRestClient.getDataColumnByNameOrCode("length");
218 Assert.assertNotNull(foundDataCol);
219 Assert.assertEquals(foundDataCol.getDataColumnClass(), Integer.class);
220 // foundDataCol = ftsRestClient.getDataColumnByNameOrCode("length");
221 // Assert.assertNotNull(foundDataCol);
222 // Assert.assertEquals(foundDataCol.getDataColumnClass(), Double.class);
223 } catch (Exception e)
226 Assert.fail("Exception thrown while testing...");
230 @Test(groups = { "Functional" })
231 public void coverageForEqualsAndHashFunction()
233 Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
234 Collection<FTSDataColumnI> searchableCols = ftsRestClient
235 .getSearchableDataColumns();
236 for (FTSDataColumnI foundCol : searchableCols)
238 uniqueSet.add(foundCol);
239 uniqueSet.add(foundCol);
241 Assert.assertTrue(!uniqueSet.isEmpty());
242 Assert.assertEquals(uniqueSet.size(), 28);
245 @Test(groups = { "Functional" })
246 public void coverageForMiscellaneousBranches()
248 String actual = ftsRestClient.getPrimaryKeyColumn().toString();
249 Assert.assertEquals(actual, "Entry Name");
251 String actualGroupStr;
254 actualGroupStr = ftsRestClient.getDataColumnGroupById("g4")
256 Assert.assertEquals(actualGroupStr, "Procedures & Softwares");
257 actualGroupStr = ftsRestClient.getDataColumnGroupById(
258 "unavailable group").toString();
259 } catch (Exception e)
261 Assert.assertTrue(true);
264 String actualResourseFile = ftsRestClient
265 .getResourceFile("/fts/uniprot_data_columns.txt");
266 Assert.assertNotNull(actualResourseFile);
267 Assert.assertTrue(actualResourseFile.length() > 31);
270 @Test(groups = { "Functional" }, expectedExceptions = Exception.class)
271 public void coverageForExceptionBranches() throws Exception
275 ftsRestClient.getDataColumnByNameOrCode("unavailable column");
276 } catch (Exception e)
278 System.out.println(e.getMessage());
279 String expectedMessage = "Couldn't find data column with name : unavailable column";
280 Assert.assertEquals(e.getMessage(), expectedMessage);
284 ftsRestClient.getDataColumnGroupById("unavailable column group Id");
285 } catch (Exception e)
287 System.out.println(e.getMessage());
288 String expectedMessage = "Couldn't find data column group with id : unavailable column group Id";
289 Assert.assertEquals(e.getMessage(), expectedMessage);
292 ftsRestClient.getDataColumnByNameOrCode("unavailable column");
294 ftsRestClient.getResourceFile("unavailable resource file");