|
|
@@ -203,6 +203,51 @@ public class TreeDataProviderTest |
|
|
|
assertEquals(stringData.getChildren("a/b"), Arrays.asList()); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void filter_is_applied_to_children_provider_filter() { |
|
|
|
final SerializablePredicate<String> dataProviderFilter = item -> item |
|
|
|
.contains("Sub"); |
|
|
|
final HierarchicalQuery<String, SerializablePredicate<String>> query = new HierarchicalQuery<>( |
|
|
|
null, null); |
|
|
|
filter_is_applied_to_children(dataProviderFilter, query); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void filter_is_applied_to_children_query_filter() { |
|
|
|
final SerializablePredicate<String> dataProviderFilter = null; |
|
|
|
final HierarchicalQuery<String, SerializablePredicate<String>> query = new HierarchicalQuery<>( |
|
|
|
item -> item.contains("Sub"), null); |
|
|
|
filter_is_applied_to_children(dataProviderFilter, query); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void filter_is_applied_to_children_both_filters() { |
|
|
|
final SerializablePredicate<String> dataProviderFilter = item -> item |
|
|
|
.contains("Sub"); |
|
|
|
final HierarchicalQuery<String, SerializablePredicate<String>> query = new HierarchicalQuery<>( |
|
|
|
dataProviderFilter, null); |
|
|
|
filter_is_applied_to_children(dataProviderFilter, query); |
|
|
|
} |
|
|
|
|
|
|
|
private void filter_is_applied_to_children( |
|
|
|
final SerializablePredicate<String> dataProviderFilter, |
|
|
|
final HierarchicalQuery<String, SerializablePredicate<String>> query) { |
|
|
|
final TreeData<String> stringData = new TreeData<>(); |
|
|
|
final String root1 = "Main"; |
|
|
|
final List<String> children1 = Arrays.asList("Sub1", "Sub2"); |
|
|
|
final String root2 = "Other"; |
|
|
|
final List<String> children2 = Arrays.asList("Foo1", "Foo2"); |
|
|
|
stringData.addRootItems(root1, root2); |
|
|
|
stringData.addItems(root1, children1); |
|
|
|
stringData.addItems(root2, children2); |
|
|
|
final TreeDataProvider<String> provider = new TreeDataProvider<>( |
|
|
|
stringData); |
|
|
|
provider.setFilter(dataProviderFilter); |
|
|
|
assertEquals("Unexpected amount of root items after filtering.", 1, |
|
|
|
provider.getChildCount(query)); |
|
|
|
assertTrue(provider.fetchChildren(query).allMatch(root1::equals)); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void setFilter() { |
|
|
|
getDataProvider().setFilter(item -> item.getValue().equals("Xyz") |
|
|
@@ -214,7 +259,7 @@ public class TreeDataProviderTest |
|
|
|
&& !item.getValue().equals("Xyz")); |
|
|
|
|
|
|
|
assertEquals( |
|
|
|
"Previous filter should be replaced when setting a new one", 6, |
|
|
|
"Previous filter should be replaced when setting a new one", 14, |
|
|
|
sizeWithUnfilteredQuery()); |
|
|
|
|
|
|
|
getDataProvider().setFilter(null); |
|
|
@@ -227,7 +272,7 @@ public class TreeDataProviderTest |
|
|
|
public void addFilter() { |
|
|
|
getDataProvider().addFilter(item -> item.getId() <= 10); |
|
|
|
getDataProvider().addFilter(item -> item.getId() >= 5); |
|
|
|
assertEquals(5, sizeWithUnfilteredQuery()); |
|
|
|
assertEquals(8, sizeWithUnfilteredQuery()); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@@ -240,7 +285,7 @@ public class TreeDataProviderTest |
|
|
|
.size(new HierarchicalQuery<>("Xyz", null))); |
|
|
|
assertEquals("No item should match 'Zyx'", 0, strFilterDataProvider |
|
|
|
.size(new HierarchicalQuery<>("Zyx", null))); |
|
|
|
assertEquals("Unexpected number of matches for 'Foo'", 3, |
|
|
|
assertEquals("Unexpected number of matches for 'Foo'", 4, |
|
|
|
strFilterDataProvider |
|
|
|
.size(new HierarchicalQuery<>("Foo", null))); |
|
|
|
assertEquals("No items should've been filtered out", rootData.size(), |
|
|
@@ -256,7 +301,7 @@ public class TreeDataProviderTest |
|
|
|
assertEquals("No item should match 'Zyx'", 0, |
|
|
|
dataProvider.size(new HierarchicalQuery<>( |
|
|
|
strBean -> strBean.getValue().contains("Zyx"), null))); |
|
|
|
assertEquals("Unexpected number of matches for 'Foo'", 3, |
|
|
|
assertEquals("Unexpected number of matches for 'Foo'", 4, |
|
|
|
getDataProvider() |
|
|
|
.size(new HierarchicalQuery<>(fooFilter, null))); |
|
|
|
} |