aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/test/java
diff options
context:
space:
mode:
authorAleksi Hietanen <aleksi@vaadin.com>2017-01-10 15:56:37 +0200
committerPekka Hyvönen <pekka@vaadin.com>2017-01-10 15:56:37 +0200
commitae54094346c40be3a058e41c942236383362ffd0 (patch)
treec0c747dbc5cd2112e736e798fb685232ffff08ba /server/src/test/java
parent9ee9273b6d1dc6f521f7b9ee02743636c69cff53 (diff)
downloadvaadin-framework-ae54094346c40be3a058e41c942236383362ffd0.tar.gz
vaadin-framework-ae54094346c40be3a058e41c942236383362ffd0.zip
Correctly reset DataCommunicator when its DataProvider is changed (#8138)
* Correctly reset DataCommunicator when its DataProvider is changed * Improve ReplaceDataProviderTest * Remove return type from AbstractListing.readItems
Diffstat (limited to 'server/src/test/java')
-rw-r--r--server/src/test/java/com/vaadin/data/provider/ReplaceDataProviderTest.java110
-rw-r--r--server/src/test/java/com/vaadin/ui/AbstractListingTest.java3
-rw-r--r--server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java6
3 files changed, 113 insertions, 6 deletions
diff --git a/server/src/test/java/com/vaadin/data/provider/ReplaceDataProviderTest.java b/server/src/test/java/com/vaadin/data/provider/ReplaceDataProviderTest.java
new file mode 100644
index 0000000000..0510022e5e
--- /dev/null
+++ b/server/src/test/java/com/vaadin/data/provider/ReplaceDataProviderTest.java
@@ -0,0 +1,110 @@
+package com.vaadin.data.provider;
+
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+
+import java.util.List;
+import java.util.function.IntFunction;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+import org.junit.Test;
+
+import com.vaadin.server.SerializablePredicate;
+
+public class ReplaceDataProviderTest {
+
+ public static class BeanWithEquals extends Bean {
+
+ BeanWithEquals(int id) {
+ super(id);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ BeanWithEquals that = (BeanWithEquals) o;
+
+ return id == that.id;
+ }
+
+ @Override
+ public int hashCode() {
+ return id;
+ }
+ }
+
+ public static class Bean {
+ protected final int id;
+ private final String fluff;
+
+ Bean(int id) {
+ this.id = id;
+ this.fluff = "Fluff #" + id;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ @SuppressWarnings("unused")
+ public String getFluff() {
+ return fluff;
+ }
+
+ }
+
+ @Test
+ public void testBeanEquals() {
+ doTest(BeanWithEquals::new);
+ }
+
+ @Test
+ public void testBeanSame() {
+ doTest(Bean::new);
+ }
+
+ private <SOME_BEAN> void doTest(IntFunction<SOME_BEAN> beanConstructor) {
+
+ DataCommunicator<SOME_BEAN, SerializablePredicate<SOME_BEAN>> dataCommunicator = new DataCommunicator<>();
+
+ List<SOME_BEAN> beans1 = createCollection(beanConstructor);
+
+ ListDataProvider<SOME_BEAN> dataProvider = new ListDataProvider<>(
+ beans1);
+
+ dataCommunicator.setDataProvider(dataProvider);
+ dataCommunicator.pushData(1, beans1.stream());
+
+ SOME_BEAN bean1_17 = beans1.get(17);
+ String key1_17 = dataCommunicator.getKeyMapper().key(bean1_17);
+
+ assertSame(bean1_17, dataCommunicator.getKeyMapper().get(key1_17));
+
+ List<SOME_BEAN> beans2 = createCollection(beanConstructor);
+
+ dataProvider = new ListDataProvider<>(beans2);
+ dataCommunicator.setDataProvider(dataProvider);
+ dataCommunicator.pushData(1, beans2.stream());
+
+ SOME_BEAN bean2_17 = beans2.get(17);
+ String key2_17 = dataCommunicator.getKeyMapper().key(bean2_17);
+
+ assertSame(bean2_17, dataCommunicator.getKeyMapper().get(key2_17));
+ assertNotEquals(key2_17, key1_17);
+ assertNull(dataCommunicator.getKeyMapper().get(key1_17));
+ }
+
+ private <SOME_BEAN> List<SOME_BEAN> createCollection(
+ IntFunction<SOME_BEAN> beanConstructor) {
+ return IntStream.range(1, 100).mapToObj(beanConstructor)
+ .collect(Collectors.toList());
+ }
+}
diff --git a/server/src/test/java/com/vaadin/ui/AbstractListingTest.java b/server/src/test/java/com/vaadin/ui/AbstractListingTest.java
index 819ed9feb3..212a15f32f 100644
--- a/server/src/test/java/com/vaadin/ui/AbstractListingTest.java
+++ b/server/src/test/java/com/vaadin/ui/AbstractListingTest.java
@@ -40,9 +40,8 @@ public class AbstractListingTest {
}
@Override
- protected List<String> readItems(Element design,
+ protected void readItems(Element design,
DesignContext context) {
- return null;
}
@Override
diff --git a/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java b/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java
index 1b814921e7..9bbcc2ca43 100644
--- a/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java
+++ b/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java
@@ -60,9 +60,8 @@ public class AbstractSingleSelectTest {
}
@Override
- protected List<Person> readItems(Element design,
+ protected void readItems(Element design,
DesignContext context) {
- return null;
}
@Override
@@ -254,9 +253,8 @@ public class AbstractSingleSelectTest {
}
@Override
- protected List<String> readItems(Element design,
+ protected void readItems(Element design,
DesignContext context) {
- return null;
}
};