diff options
author | Pekka Hyvönen <pekka@vaadin.com> | 2016-12-09 09:14:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-09 09:14:56 +0200 |
commit | 22063cfe1a027057e523ccd85937162af43edfd8 (patch) | |
tree | 21fae6cecb4c32de02787b4b1ee5cff284d5754b /server/src/test/java | |
parent | a95dadcde5a223aacc3005b298d66e00419454e8 (diff) | |
download | vaadin-framework-22063cfe1a027057e523ccd85937162af43edfd8.tar.gz vaadin-framework-22063cfe1a027057e523ccd85937162af43edfd8.zip |
Add a generic selection listener to Grid & SelectionModels (#105)
* Add a generic selection listener to Grid & SelectionModels
Fixes some inconsistent event naming and invalid javadocs.
Fixes vaadin/framework8-issues#541
Diffstat (limited to 'server/src/test/java')
-rw-r--r-- | server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinderTest.java (renamed from server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinder.java) | 2 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinderTest.java (renamed from server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinder.java) | 2 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java | 15 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java | 18 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java | 99 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java | 4 | ||||
-rw-r--r-- | server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java | 4 |
7 files changed, 123 insertions, 21 deletions
diff --git a/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinder.java b/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinderTest.java index 703ed9e170..c3921ff5fc 100644 --- a/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinder.java +++ b/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinderTest.java @@ -28,7 +28,7 @@ import com.vaadin.ui.Grid.SelectionMode; import com.vaadin.ui.MultiSelect; import com.vaadin.ui.components.grid.MultiSelectionModelImpl; -public class GridAsMultiSelectInBinder +public class GridAsMultiSelectInBinderTest extends BinderTestBase<Binder<BeanWithEnums>, BeanWithEnums> { public class TestEnumSetToStringConverter implements Converter<Set<TestEnum>, String> { diff --git a/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinder.java b/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinderTest.java index e1fc394fe6..964cf0bc98 100644 --- a/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinder.java +++ b/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinderTest.java @@ -19,7 +19,7 @@ import com.vaadin.ui.Grid.SelectionMode; import com.vaadin.ui.SingleSelect; import com.vaadin.ui.components.grid.SingleSelectionModelImpl; -public class GridAsSingleSelectInBinder +public class GridAsSingleSelectInBinderTest extends BinderTestBase<Binder<Person>, Person> { private class GridWithCustomSingleSelectionModel extends Grid<Sex> { diff --git a/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java b/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java index aa601c67be..c2896315f2 100644 --- a/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java +++ b/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java @@ -103,7 +103,7 @@ public class GridMultiSelectionModelTest { oldSelectionCapture = new Capture<>(); events = new AtomicInteger(); - selectionModel.addSelectionListener(event -> { + selectionModel.addMultiSelectionListener(event -> { currentSelectionCapture .setValue(new ArrayList<>(event.getNewSelection())); oldSelectionCapture @@ -135,7 +135,7 @@ public class GridMultiSelectionModelTest { List<String> selectionChanges = new ArrayList<>(); Capture<List<String>> oldSelectionCapture = new Capture<>(); ((MultiSelectionModelImpl<String>) customGrid.getSelectionModel()) - .addSelectionListener(e -> { + .addMultiSelectionListener(e -> { selectionChanges.addAll(e.getValue()); oldSelectionCapture .setValue(new ArrayList<>(e.getOldSelection())); @@ -578,7 +578,7 @@ public class GridMultiSelectionModelTest { Registration registration = Mockito.mock(Registration.class); MultiSelectionModelImpl<String> model = new MultiSelectionModelImpl<String>() { @Override - public Registration addSelectionListener( + public Registration addMultiSelectionListener( MultiSelectionListener<String> listener) { selectionListener.set(listener); return registration; @@ -595,10 +595,11 @@ public class GridMultiSelectionModelTest { grid.setItems("foo", "bar"); AtomicReference<MultiSelectionEvent<String>> event = new AtomicReference<>(); - Registration actualRegistration = model.addSelectionListener(evt -> { - Assert.assertNull(event.get()); - event.set(evt); - }); + Registration actualRegistration = model + .addMultiSelectionListener(evt -> { + Assert.assertNull(event.get()); + event.set(evt); + }); Assert.assertSame(registration, actualRegistration); selectionListener.get().accept(new MultiSelectionEvent<>(grid, diff --git a/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java b/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java index bae7c9c19b..9dd7d7e27a 100644 --- a/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java +++ b/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java @@ -73,8 +73,8 @@ public class GridSingleSelectionModelTest { .getSelectionModel(); selectionChanges = new ArrayList<>(); - selectionModel - .addSelectionListener(e -> selectionChanges.add(e.getValue())); + selectionModel.addSingleSelectionListener( + e -> selectionChanges.add(e.getValue())); } @Test(expected = IllegalStateException.class) @@ -97,7 +97,8 @@ public class GridSingleSelectionModelTest { List<String> selectionChanges = new ArrayList<>(); ((SingleSelectionModelImpl<String>) customGrid.getSelectionModel()) - .addSelectionListener(e -> selectionChanges.add(e.getValue())); + .addSingleSelectionListener( + e -> selectionChanges.add(e.getValue())); customGrid.getSelectionModel().select("Foo"); assertEquals("Foo", @@ -292,7 +293,7 @@ public class GridSingleSelectionModelTest { String value = "foo"; SingleSelectionModelImpl<String> select = new SingleSelectionModelImpl<String>() { @Override - public Registration addSelectionListener( + public Registration addSingleSelectionListener( SingleSelectionListener<String> listener) { selectionListener.set(listener); return registration; @@ -305,10 +306,11 @@ public class GridSingleSelectionModelTest { }; AtomicReference<ValueChangeEvent<?>> event = new AtomicReference<>(); - Registration actualRegistration = select.addSelectionListener(evt -> { - Assert.assertNull(event.get()); - event.set(evt); - }); + Registration actualRegistration = select + .addSingleSelectionListener(evt -> { + Assert.assertNull(event.get()); + event.set(evt); + }); Assert.assertSame(registration, actualRegistration); selectionListener.get().accept(new SingleSelectionEvent<>(grid, diff --git a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java index 942228ed34..d477a731cf 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java +++ b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java @@ -1,13 +1,21 @@ package com.vaadin.tests.server.component.grid; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import java.util.Optional; + +import org.easymock.Capture; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import com.vaadin.event.selection.SelectionEvent; import com.vaadin.server.SerializableFunction; import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.ui.Grid; +import com.vaadin.ui.Grid.SelectionMode; import com.vaadin.ui.renderers.NumberRenderer; public class GridTest { @@ -78,4 +86,95 @@ public class GridTest { public void testGridMultipleColumnsWithSameIdentifier() { grid.addColumn("foo", t -> t); } + + @Test + public void testAddSelectionListener_singleSelectMode() { + grid.setItems("foo", "bar", "baz"); + + Capture<SelectionEvent<String>> eventCapture = new Capture<>(); + + grid.addSelectionListener(event -> eventCapture.setValue(event)); + + grid.getSelectionModel().select("foo"); + + SelectionEvent<String> event = eventCapture.getValue(); + assertNotNull(event); + assertFalse(event.isUserOriginated()); + assertEquals("foo", event.getFirstSelected().get()); + assertEquals("foo", + event.getAllSelectedItems().stream().findFirst().get()); + + grid.getSelectionModel().select("bar"); + + event = eventCapture.getValue(); + assertNotNull(event); + assertFalse(event.isUserOriginated()); + assertEquals("bar", event.getFirstSelected().get()); + assertEquals("bar", + event.getAllSelectedItems().stream().findFirst().get()); + + grid.getSelectionModel().deselect("bar"); + + event = eventCapture.getValue(); + assertNotNull(event); + assertFalse(event.isUserOriginated()); + assertEquals(Optional.empty(), event.getFirstSelected()); + assertEquals(0, event.getAllSelectedItems().size()); + } + + @Test + public void testAddSelectionListener_multiSelectMode() { + grid.setItems("foo", "bar", "baz"); + grid.setSelectionMode(SelectionMode.MULTI); + + Capture<SelectionEvent<String>> eventCapture = new Capture<>(); + + grid.addSelectionListener(event -> eventCapture.setValue(event)); + + grid.getSelectionModel().select("foo"); + + SelectionEvent<String> event = eventCapture.getValue(); + assertNotNull(event); + assertFalse(event.isUserOriginated()); + assertEquals("foo", event.getFirstSelected().get()); + assertEquals("foo", + event.getAllSelectedItems().stream().findFirst().get()); + + grid.getSelectionModel().select("bar"); + + event = eventCapture.getValue(); + assertNotNull(event); + assertFalse(event.isUserOriginated()); + assertEquals("foo", event.getFirstSelected().get()); + assertEquals("foo", + event.getAllSelectedItems().stream().findFirst().get()); + Assert.assertArrayEquals(new String[] { "foo", "bar" }, + event.getAllSelectedItems().toArray(new String[2])); + + grid.getSelectionModel().deselect("foo"); + + assertNotNull(event); + assertFalse(event.isUserOriginated()); + assertEquals("bar", event.getFirstSelected().get()); + assertEquals("bar", + event.getAllSelectedItems().stream().findFirst().get()); + Assert.assertArrayEquals(new String[] { "bar" }, + event.getAllSelectedItems().toArray(new String[1])); + + grid.getSelectionModel().deselectAll(); + + event = eventCapture.getValue(); + assertNotNull(event); + assertFalse(event.isUserOriginated()); + assertEquals(Optional.empty(), event.getFirstSelected()); + assertEquals(0, event.getAllSelectedItems().size()); + } + + @Test(expected = UnsupportedOperationException.class) + public void testAddSelectionListener_noSelectionMode() { + grid.setSelectionMode(SelectionMode.NONE); + + grid.addSelectionListener( + event -> Assert.fail("never ever happens (tm)")); + } } diff --git a/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java b/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java index ee129d0e0a..c930b8e217 100644 --- a/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java +++ b/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java @@ -81,7 +81,7 @@ public class AbstractSingleSelectTest { listing = new PersonListing(); listing.setItems(PERSON_A, PERSON_B, PERSON_C); selectionChanges = new ArrayList<>(); - listing.addSelectionChangeListener( + listing.addSelectionListener( e -> selectionChanges.add(e.getValue())); } @@ -237,7 +237,7 @@ public class AbstractSingleSelectTest { String value = "foo"; AbstractSingleSelect<String> select = new AbstractSingleSelect<String>() { @Override - public Registration addSelectionChangeListener( + public Registration addSelectionListener( SingleSelectionListener<String> listener) { selectionListener.set(listener); return registration; diff --git a/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java b/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java index 22b9206760..9219ec834e 100644 --- a/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java +++ b/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java @@ -42,7 +42,7 @@ public class RadioButtonGroupTest { public void apiSelectionChange_notUserOriginated() { AtomicInteger listenerCount = new AtomicInteger(0); - radioButtonGroup.addSelectionChangeListener(event -> { + radioButtonGroup.addSelectionListener(event -> { listenerCount.incrementAndGet(); Assert.assertFalse(event.isUserOriginated()); }); @@ -60,7 +60,7 @@ public class RadioButtonGroupTest { public void rpcSelectionChange_userOriginated() { AtomicInteger listenerCount = new AtomicInteger(0); - radioButtonGroup.addSelectionChangeListener(event -> { + radioButtonGroup.addSelectionListener(event -> { listenerCount.incrementAndGet(); Assert.assertTrue(event.isUserOriginated()); }); |