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 .getAllDefaultDisplayedFTSDataColumns();
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
65 .getAllDefaultDisplayedFTSDataColumns());
66 Assert.assertTrue(!ftsRestClient.getAllDefaultDisplayedFTSDataColumns()
68 Assert.assertEquals(ftsRestClient
69 .getAllDefaultDisplayedFTSDataColumns().size(), 7);
72 @Test(groups = { "Functional" })
73 public void getDataColumnsFieldsAsCommaDelimitedString()
75 Collection<FTSDataColumnI> wantedFields = ftsRestClient
76 .getAllDefaultDisplayedFTSDataColumns();
77 String actual = ftsRestClient
78 .getDataColumnsFieldsAsCommaDelimitedString(wantedFields);
79 Assert.assertEquals(actual,
80 "id,entry name,protein names,genes,organism,reviewed,length");
83 @Test(groups = { "Functional" })
84 public void getAllFTSDataColumns()
86 Collection<FTSDataColumnI> allFields = ftsRestClient
87 .getAllFTSDataColumns();
88 Assert.assertNotNull(allFields);
89 Assert.assertEquals(allFields.size(), 117);
92 @Test(groups = { "Functional" })
93 public void getSearchableDataColumns()
95 Collection<FTSDataColumnI> searchalbeFields = ftsRestClient
96 .getSearchableDataColumns();
97 Assert.assertNotNull(searchalbeFields);
98 Assert.assertEquals(searchalbeFields.size(), 22);
101 @Test(groups = { "Functional" })
102 public void getPrimaryKeyColumn()
104 FTSDataColumnI expectedPKColumn;
107 expectedPKColumn = ftsRestClient
108 .getDataColumnByNameOrCode("Uniprot Id");
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, 500);
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.getDataType().getDataTypeClass(),
218 foundDataCol = ftsRestClient.getDataColumnByNameOrCode("length");
219 Assert.assertNotNull(foundDataCol);
220 Assert.assertEquals(foundDataCol.getDataType().getDataTypeClass(),
222 // foundDataCol = ftsRestClient.getDataColumnByNameOrCode("length");
223 // Assert.assertNotNull(foundDataCol);
224 // Assert.assertEquals(foundDataCol.getDataColumnClass(), Double.class);
225 } catch (Exception e)
228 Assert.fail("Exception thrown while testing...");
232 @Test(groups = { "Functional" })
233 public void coverageForEqualsAndHashFunction()
235 Set<FTSDataColumnI> uniqueSet = new HashSet<FTSDataColumnI>();
236 Collection<FTSDataColumnI> searchableCols = ftsRestClient
237 .getSearchableDataColumns();
238 for (FTSDataColumnI foundCol : searchableCols)
240 System.out.println(foundCol.toString());
241 uniqueSet.add(foundCol);
242 uniqueSet.add(foundCol);
244 Assert.assertTrue(!uniqueSet.isEmpty());
245 Assert.assertEquals(uniqueSet.size(), 22);
248 @Test(groups = { "Functional" })
249 public void coverageForMiscellaneousBranches()
251 String actual = ftsRestClient.getPrimaryKeyColumn().toString();
252 Assert.assertEquals(actual, "Uniprot Id");
254 String actualGroupStr;
257 actualGroupStr = ftsRestClient.getDataColumnGroupById("g4")
259 Assert.assertEquals(actualGroupStr, "Procedures & Softwares");
260 actualGroupStr = ftsRestClient.getDataColumnGroupById(
261 "unavailable group").toString();
262 } catch (Exception e)
264 Assert.assertTrue(true);
267 String actualResourseFile = ftsRestClient
268 .getResourceFile("/fts/uniprot_data_columns.txt");
269 Assert.assertNotNull(actualResourseFile);
270 Assert.assertTrue(actualResourseFile.length() > 31);
273 @Test(groups = { "Functional" }, expectedExceptions = Exception.class)
274 public void coverageForExceptionBranches() throws Exception
278 ftsRestClient.getDataColumnByNameOrCode("unavailable column");
279 } catch (Exception e)
281 System.out.println(e.getMessage());
282 String expectedMessage = "Couldn't find data column with name : unavailable column";
283 Assert.assertEquals(e.getMessage(), expectedMessage);
287 ftsRestClient.getDataColumnGroupById("unavailable column group Id");
288 } catch (Exception e)
290 System.out.println(e.getMessage());
291 String expectedMessage = "Couldn't find data column group with id : unavailable column group Id";
292 Assert.assertEquals(e.getMessage(), expectedMessage);
295 ftsRestClient.getDataColumnByNameOrCode("unavailable column");
297 ftsRestClient.getResourceFile("unavailable resource file");