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");
82 @Test(groups = { "Functional" })
83 public void getDataColumnsFieldsAsTabDelimitedString()
85 Collection<FTSDataColumnI> wantedFields = ftsRestClient
86 .getAllDefaulDisplayedDataColumns();
87 String actual = ftsRestClient
88 .getDataColumnsFieldsAsTabDelimitedString(wantedFields);
89 Assert.assertEquals(actual,
90 "Entry Name\tProtein names\tGene Names\tOrganism\tDate of creation\tDate of last modification");
93 @Test(groups = { "Functional" })
94 public void getAllFTSDataColumns()
96 Collection<FTSDataColumnI> allFields = ftsRestClient
97 .getAllFTSDataColumns();
98 Assert.assertNotNull(allFields);
99 Assert.assertEquals(allFields.size(), 116);
102 @Test(groups = { "Functional" })
103 public void getSearchableDataColumns()
105 Collection<FTSDataColumnI> searchalbeFields = ftsRestClient
106 .getSearchableDataColumns();
107 Assert.assertNotNull(searchalbeFields);
108 Assert.assertEquals(searchalbeFields.size(), 28);
111 @Test(groups = { "Functional" })
112 public void getPrimaryKeyColumn()
114 FTSDataColumnI expectedPKColumn;
117 expectedPKColumn = ftsRestClient
118 .getDataColumnByNameOrCode("Entry Name");
119 Assert.assertNotNull(ftsRestClient.getPrimaryKeyColumn());
120 Assert.assertEquals(ftsRestClient.getPrimaryKeyColumn(),
122 } catch (Exception e)
125 Assert.fail("Exception thrown while testing...");
129 @Test(groups = { "Functional" })
130 public void getDataColumnByNameOrCode()
134 FTSDataColumnI foundDataCol = ftsRestClient
135 .getDataColumnByNameOrCode("genes");
136 Assert.assertNotNull(foundDataCol);
137 Assert.assertEquals(foundDataCol.getName(), "Gene Names");
138 } catch (Exception e)
141 Assert.fail("Exception thrown while testing...");
145 @Test(groups = { "Functional" })
146 public void getDataColumnGroupById()
148 FTSDataColumnGroupI foundDataColGroup;
151 foundDataColGroup = ftsRestClient.getDataColumnGroupById("g3");
152 Assert.assertNotNull(foundDataColGroup);
153 Assert.assertEquals(foundDataColGroup.getName(), "Names & Taxonomy");
154 } catch (Exception e)
160 @Test(groups = { "Functional" })
161 public void getDefaultResponsePageSize()
163 int defaultResSize = ftsRestClient.getDefaultResponsePageSize();
164 Assert.assertEquals(defaultResSize, 100);
167 @Test(groups = { "Functional" })
168 public void getColumnMinWidthTest()
172 FTSDataColumnI foundDataCol = ftsRestClient
173 .getDataColumnByNameOrCode("Protein names");
174 Assert.assertNotNull(foundDataCol);
175 int actualColMinWidth = foundDataCol.getMinWidth();
176 Assert.assertEquals(actualColMinWidth, 300);
177 } catch (Exception e)
180 Assert.fail("Exception thrown while testing...");
184 @Test(groups = { "Functional" })
185 public void getColumnMaxWidthTest()
189 FTSDataColumnI foundDataCol = ftsRestClient
190 .getDataColumnByNameOrCode("Protein names");
191 Assert.assertNotNull(foundDataCol);
192 int actualColMinWidth = foundDataCol.getMaxWidth();
193 Assert.assertEquals(actualColMinWidth, 1500);
194 } catch (Exception e)
197 Assert.fail("Exception thrown while testing...");
201 @Test(groups = { "Functional" })
202 public void getColumnPreferredWidthTest()
206 FTSDataColumnI foundDataCol = ftsRestClient
207 .getDataColumnByNameOrCode("Protein names");
208 Assert.assertNotNull(foundDataCol);
209 int actualColMinWidth = foundDataCol.getPreferredWidth();
210 Assert.assertEquals(actualColMinWidth, 500);
211 } catch (Exception e)
214 Assert.fail("Exception thrown while testing...");
218 @Test(groups = { "Functional" })
219 public void getColumnClassTest()
223 FTSDataColumnI foundDataCol = ftsRestClient
224 .getDataColumnByNameOrCode("Protein names");
225 Assert.assertNotNull(foundDataCol);
226 Assert.assertEquals(foundDataCol.getDataColumnClass(), String.class);
227 foundDataCol = ftsRestClient.getDataColumnByNameOrCode("length");
228 Assert.assertNotNull(foundDataCol);
229 Assert.assertEquals(foundDataCol.getDataColumnClass(), Integer.class);
230 // foundDataCol = ftsRestClient.getDataColumnByNameOrCode("length");
231 // Assert.assertNotNull(foundDataCol);
232 // Assert.assertEquals(foundDataCol.getDataColumnClass(), Double.class);
233 } catch (Exception e)
236 Assert.fail("Exception thrown while testing...");
240 @Test(groups = { "Functional" })
241 public void coverageForEqualsAndHashFunction()
243 Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
244 Collection<FTSDataColumnI> searchableCols = ftsRestClient
245 .getSearchableDataColumns();
246 for (FTSDataColumnI foundCol : searchableCols)
248 uniqueSet.add(foundCol);
249 uniqueSet.add(foundCol);
251 Assert.assertTrue(!uniqueSet.isEmpty());
252 Assert.assertEquals(uniqueSet.size(), 28);
255 @Test(groups = { "Functional" })
256 public void coverageForMiscellaneousBranches()
258 String actual = ftsRestClient.getPrimaryKeyColumn().toString();
259 Assert.assertEquals(actual, "Entry Name");
261 String actualGroupStr;
264 actualGroupStr = ftsRestClient.getDataColumnGroupById("g4")
266 Assert.assertEquals(actualGroupStr, "Procedures & Softwares");
267 actualGroupStr = ftsRestClient.getDataColumnGroupById(
268 "unavailable group").toString();
269 } catch (Exception e)
271 Assert.assertTrue(true);
274 String actualResourseFile = ftsRestClient
275 .getResourceFile("/fts/uniprot_data_columns.txt");
276 Assert.assertNotNull(actualResourseFile);
277 Assert.assertTrue(actualResourseFile.length() > 31);
280 @Test(groups = { "Functional" }, expectedExceptions = Exception.class)
281 public void coverageForExceptionBranches() throws Exception
285 ftsRestClient.getDataColumnByNameOrCode("unavailable column");
286 } catch (Exception e)
288 System.out.println(e.getMessage());
289 String expectedMessage = "Couldn't find data column with name : unavailable column";
290 Assert.assertEquals(e.getMessage(), expectedMessage);
294 ftsRestClient.getDataColumnGroupById("unavailable column group Id");
295 } catch (Exception e)
297 System.out.println(e.getMessage());
298 String expectedMessage = "Couldn't find data column group with id : unavailable column group Id";
299 Assert.assertEquals(e.getMessage(), expectedMessage);
302 ftsRestClient.getDataColumnByNameOrCode("unavailable column");
304 ftsRestClient.getResourceFile("unavailable resource file");