Skip to content

Commit 40e4f65

Browse files
add new examples about shipping name filter
1 parent a019ab2 commit 40e4f65

File tree

1 file changed

+126
-15
lines changed

1 file changed

+126
-15
lines changed

java/WebAutomation-Series/src/test/java/kendogrid/partone/KendoGridTests.java

Lines changed: 126 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import kendogrid.components.GridFilter;
2020
import kendogrid.components.GridItem;
2121
import kendogrid.components.KendoGrid;
22+
import kendogrid.reuse.GridColumns;
2223
import org.openqa.selenium.*;
2324
import org.openqa.selenium.chrome.ChromeDriver;
2425
import org.openqa.selenium.support.ui.WebDriverWait;
@@ -29,6 +30,7 @@
2930
import org.testng.annotations.Test;
3031

3132
import java.util.List;
33+
import java.util.UUID;
3234
import java.util.concurrent.TimeUnit;
3335

3436
import static java.lang.System.getProperty;
@@ -67,7 +69,7 @@ public void afterClass() {
6769
// OrderID Test Cases (Unique Identifier Type Column Test Cases)/ OrderID Test Cases
6870
@Test
6971
public void orderIdEqualToFilter() throws Exception {
70-
var newItem = CreateNewItemInDb();
72+
var newItem = createNewItemInDb();
7173

7274
kendoGrid.filter(OrderIdColumnName, FilterOperator.EQUAL_TO, newItem.getOrderId());
7375
waitForGridToLoad(1, kendoGrid);
@@ -79,10 +81,10 @@ public void orderIdEqualToFilter() throws Exception {
7981
@Test
8082
public void orderIdGreaterThanOrEqualToFilter() throws Exception {
8183
// Create new item with unique ship name;
82-
var newItem = CreateNewItemInDb();
84+
var newItem = createNewItemInDb();
8385

8486
// Create second new item with the same unique shipping name
85-
var secondNewItem = CreateNewItemInDb(newItem.getShipName());
87+
var secondNewItem = createNewItemInDb(newItem.getShipName());
8688

8789
// When we filter by the second unique column ShippingName, only one item will be displayed. Once we apply the second not equal to filter the grid should be empty.
8890
kendoGrid.filter(
@@ -100,10 +102,10 @@ public void orderIdGreaterThanOrEqualToFilter() throws Exception {
100102
@Test
101103
public void orderIdGreaterThanFilter() throws Exception {
102104
// Create new item with unique ship name;
103-
var newItem = CreateNewItemInDb();
105+
var newItem = createNewItemInDb();
104106

105107
// Create second new item with the same unique shipping name
106-
var secondNewItem = CreateNewItemInDb(newItem.getShipName());
108+
var secondNewItem = createNewItemInDb(newItem.getShipName());
107109

108110
// Filter by the smaller orderId but also by the second unique column in this case shipping name
109111
kendoGrid.filter(
@@ -119,10 +121,10 @@ public void orderIdGreaterThanFilter() throws Exception {
119121
@Test
120122
public void orderIdLessThanOrEqualToFilter() throws Exception {
121123
// Create new item with unique ship name;
122-
var newItem = CreateNewItemInDb();
124+
var newItem = createNewItemInDb();
123125

124126
// Create second new item with the same unique shipping name
125-
var secondNewItem = CreateNewItemInDb(newItem.getShipName());
127+
var secondNewItem = createNewItemInDb(newItem.getShipName());
126128

127129
// Filter by the larger orderId but also by the second unique column in this case shipping name
128130
kendoGrid.filter(
@@ -139,10 +141,10 @@ public void orderIdLessThanOrEqualToFilter() throws Exception {
139141
@Test
140142
public void orderIdLessThanFilter() throws Exception {
141143
// Create new item with unique ship name;
142-
var newItem = CreateNewItemInDb();
144+
var newItem = createNewItemInDb();
143145

144146
// Create second new item with the same unique shipping name
145-
var secondNewItem = CreateNewItemInDb(newItem.getShipName());
147+
var secondNewItem = createNewItemInDb(newItem.getShipName());
146148

147149
// Filter by the larger orderId but also by the second unique column in this case shipping name
148150
kendoGrid.filter(
@@ -158,10 +160,10 @@ public void orderIdLessThanFilter() throws Exception {
158160
@Test
159161
public void orderIdNotEqualToFilter() throws Exception {
160162
// Create new item with unique ship name;
161-
var newItem = CreateNewItemInDb();
163+
var newItem = createNewItemInDb();
162164

163165
// Create second new item with the same unique shipping name
164-
var secondNewItem = CreateNewItemInDb(newItem.getShipName());
166+
var secondNewItem = createNewItemInDb(newItem.getShipName());
165167

166168
// Filter by the larger orderId but also by the second unique column in this case shipping name
167169
kendoGrid.filter(
@@ -177,10 +179,10 @@ public void orderIdNotEqualToFilter() throws Exception {
177179
@Test
178180
public void orderIdClearFilter() throws Exception {
179181
// Create new item with unique ship name;
180-
var newItem = CreateNewItemInDb();
182+
var newItem = createNewItemInDb();
181183

182184
// Make sure that we have at least 2 items if the grid is empty. The tests are designed to run against empty DB.
183-
var secondNewItem = CreateNewItemInDb(newItem.getShipName());
185+
var secondNewItem = createNewItemInDb(newItem.getShipName());
184186

185187
kendoGrid.filter(OrderIdColumnName, FilterOperator.EQUAL_TO, newItem.getOrderId());
186188
waitForGridToLoad(1, kendoGrid);
@@ -192,6 +194,115 @@ public void orderIdClearFilter() throws Exception {
192194
Assert.assertTrue(results.stream().count() > 1);
193195
}
194196

197+
// ship name tests
198+
@Test
199+
public void shipNameEqualToFilter() throws Exception {
200+
var newItem = createNewItemInDb();
201+
202+
kendoGrid.filter(GridColumns.SHIP_NAME, FilterOperator.EQUAL_TO, newItem.getShipName());
203+
waitForGridToLoad(1, kendoGrid);
204+
List<GridItem> items = kendoGrid.getItems();
205+
206+
Assert.assertEquals(items.stream().count(), 1);
207+
}
208+
209+
@Test
210+
public void shipNameContainsFilter() throws Exception {
211+
var shipName = UUID.randomUUID().toString();
212+
213+
// Remove first and last letter
214+
shipName = removeLastChar(removeFirstChar(shipName));
215+
var newItem = createNewItemInDb(shipName);
216+
217+
kendoGrid.filter(GridColumns.SHIP_NAME, FilterOperator.CONTAINS, newItem.getShipName());
218+
waitForGridToLoad(1, kendoGrid);
219+
List<GridItem> items = kendoGrid.getItems();
220+
221+
Assert.assertEquals(items.stream().count(), 1);
222+
}
223+
224+
@Test
225+
public void shipNameEndsWithFilter() throws Exception {
226+
// Remove first letter
227+
var shipName = UUID.randomUUID().toString();
228+
shipName = removeFirstChar(shipName);
229+
var newItem = createNewItemInDb(shipName);
230+
231+
kendoGrid.filter(GridColumns.SHIP_NAME, FilterOperator.ENDS_WITH, newItem.getShipName());
232+
waitForGridToLoad(1, kendoGrid);
233+
List<GridItem> items = kendoGrid.getItems();
234+
235+
Assert.assertEquals(items.stream().count(), 1);
236+
}
237+
238+
@Test
239+
public void shipNameStartsWithFilter() throws Exception {
240+
// Remove last letter
241+
var shipName = UUID.randomUUID().toString();
242+
shipName = removeFirstChar(shipName);
243+
var newItem = createNewItemInDb(shipName);
244+
245+
kendoGrid.filter(GridColumns.SHIP_NAME, FilterOperator.STARTS_WITH, newItem.getShipName());
246+
waitForGridToLoad(1, kendoGrid);
247+
List<GridItem> items = kendoGrid.getItems();
248+
249+
Assert.assertEquals(items.stream().count(), 1);
250+
}
251+
252+
@Test
253+
public void shipNameNotEqualToFilter() throws Exception {
254+
// Apply combined filter. First filter by ID and than by ship name (not equal filter).
255+
// After the first filter there is only one element when we apply the second we expect 0 elements.
256+
var newItem = createNewItemInDb();
257+
258+
kendoGrid.filter(
259+
new GridFilter(GridColumns.SHIP_NAME, FilterOperator.NOT_EQUAL_TO, newItem.getShipName()),
260+
new GridFilter(GridColumns.ORDER_ID, FilterOperator.EQUAL_TO, newItem.getOrderId().toString()));
261+
waitForGridToLoad(0, kendoGrid);
262+
List<GridItem> items = kendoGrid.getItems();
263+
264+
Assert.assertEquals(items.stream().count(), 0);
265+
}
266+
267+
@Test
268+
public void shipNameNotContainsFilter() throws Exception {
269+
// Remove first and last letter
270+
var shipName = UUID.randomUUID().toString();
271+
shipName = removeLastChar(removeFirstChar(shipName));
272+
var newItem = createNewItemInDb(shipName);
273+
274+
// Apply combined filter. First filter by ID and than by ship name (not equal filter).
275+
// After the first filter there is only one element when we apply the second we expect 0 elements.
276+
kendoGrid.filter(
277+
new GridFilter(GridColumns.SHIP_NAME, FilterOperator.NOT_CONTAINS, newItem.getShipName()),
278+
new GridFilter(GridColumns.ORDER_ID, FilterOperator.EQUAL_TO, newItem.getOrderId().toString()));
279+
waitForGridToLoad(0, kendoGrid);
280+
List<GridItem> items = kendoGrid.getItems();
281+
282+
Assert.assertEquals(items.stream().count(), 0);
283+
}
284+
285+
@Test
286+
public void shipNameClearFilter() throws Exception {
287+
createNewItemInDb();
288+
289+
// Filter by GUID and we know we wait the grid to be empty
290+
kendoGrid.filter(GridColumns.SHIP_NAME, FilterOperator.STARTS_WITH, UUID.randomUUID().toString());
291+
waitForGridToLoad(0, kendoGrid);
292+
293+
// Remove all filters and we expect that the grid will contain at least 1 item.
294+
kendoGrid.removeFilters();
295+
waitForGridToLoadAtLeast(1, kendoGrid);
296+
}
297+
298+
private String removeFirstChar(String s) {
299+
return s.substring(1);
300+
}
301+
302+
private String removeLastChar(String s) {
303+
return s.substring(0, s.length() - 1);
304+
}
305+
195306
private void waitUntilLoaded() {
196307
wait.until(x ->
197308
{
@@ -235,12 +346,12 @@ private void waitForGridToLoadAtLeast(int expectedCount, KendoGrid grid)
235346
});
236347
}
237348

238-
private Order CreateNewItemInDb(String shipName) {
349+
private Order createNewItemInDb(String shipName) {
239350
// Replace it with service oriented call to your DB. Create real entity in DB.
240351
return new Order(shipName);
241352
}
242353

243-
private Order CreateNewItemInDb() {
354+
private Order createNewItemInDb() {
244355
// Replace it with service oriented call to your DB. Create real entity in DB.
245356
return new Order("");
246357
}

0 commit comments

Comments
 (0)