diff options
author | Leif Åstrand <legioth@gmail.com> | 2017-03-31 15:48:13 +0300 |
---|---|---|
committer | Pekka Hyvönen <pekka@vaadin.com> | 2017-03-31 15:48:13 +0300 |
commit | 0a257471c7c948a78cfc2b01961e8a604f4ec1bf (patch) | |
tree | 3b0431e3ee945586231e778d39b869c13b1fbb16 /server/src/test | |
parent | b56732af18f75d210248e08d6899ef47ed55437f (diff) | |
download | vaadin-framework-0a257471c7c948a78cfc2b01961e8a604f4ec1bf.tar.gz vaadin-framework-0a257471c7c948a78cfc2b01961e8a604f4ec1bf.zip |
Make getValueProvider return ValueProvider (#8983)
* Make getValueProvider return ValueProvider
The instance can only be a ValueProvider, but the getter previously
returned a less specific type. Making the getter return ValueProvider
makes it easier to reuse the provider in other contexts that require
ValueProvider, e.g. when adding filters to a ListDataProvider.
Diffstat (limited to 'server/src/test')
-rw-r--r-- | server/src/test/java/com/vaadin/tests/components/grid/GridValueProvider.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/server/src/test/java/com/vaadin/tests/components/grid/GridValueProvider.java b/server/src/test/java/com/vaadin/tests/components/grid/GridValueProvider.java index 09108b6746..27ba971127 100644 --- a/server/src/test/java/com/vaadin/tests/components/grid/GridValueProvider.java +++ b/server/src/test/java/com/vaadin/tests/components/grid/GridValueProvider.java @@ -15,9 +15,16 @@ */ package com.vaadin.tests.components.grid; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; + import org.junit.Assert; import org.junit.Test; +import com.vaadin.data.provider.DataProvider; +import com.vaadin.data.provider.ListDataProvider; +import com.vaadin.data.provider.Query; import com.vaadin.tests.data.bean.Person; import com.vaadin.tests.data.bean.Sex; import com.vaadin.ui.Grid; @@ -45,4 +52,26 @@ public class GridValueProvider { Assert.assertEquals("eeemaaail", col.getValueProvider().apply(person)); } + + @Test + public void reuseValueProviderForFilter() { + Grid<Person> grid = new Grid<>(Person.class); + Column<Person, String> col = (Column<Person, String>) grid + .getColumn("email"); + + Person lowerCasePerson = new Person("first", "last", "email", 123, + Sex.UNKNOWN, null); + Person upperCasePerson = new Person("FIRST", "LAST", "EMAIL", 123, + Sex.UNKNOWN, null); + ListDataProvider<Person> persons = DataProvider.ofItems(lowerCasePerson, + upperCasePerson); + + persons.addFilter(col.getValueProvider(), + value -> value.toUpperCase(Locale.ENGLISH).equals(value)); + + List<Person> queryPersons = persons.fetch(new Query<>()) + .collect(Collectors.toList()); + Assert.assertEquals(1, queryPersons.size()); + Assert.assertSame(upperCasePerson, queryPersons.get(0)); + } } |