You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ListDataSourceTest.java 2.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package com.vaadin.tokka.data.datasource;
  2. import static org.junit.Assert.assertTrue;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.stream.Stream;
  6. import org.easymock.EasyMock;
  7. import org.junit.After;
  8. import org.junit.Before;
  9. import org.junit.Test;
  10. import com.vaadin.tokka.server.communication.data.DataChangeHandler;
  11. import com.vaadin.tokka.server.communication.data.DataSource;
  12. import com.vaadin.tokka.server.communication.data.ListDataSource;
  13. public class ListDataSourceTest {
  14. private static class StrBean {
  15. private String value;
  16. public StrBean(String value) {
  17. this.value = value;
  18. }
  19. public String getValue() {
  20. return value;
  21. }
  22. public void setValue(String value) {
  23. this.value = value;
  24. }
  25. }
  26. private ListDataSource<StrBean> dataSource;
  27. private List<StrBean> data;
  28. private DataChangeHandler<StrBean> handler;
  29. @Before
  30. public void setUp() {
  31. data = createData();
  32. dataSource = DataSource.create(data);
  33. handler = EasyMock.mock(DataChangeHandler.class);
  34. }
  35. @Test
  36. public void testListContainsAllData() {
  37. EasyMock.replay(handler);
  38. dataSource.request().forEach(str -> assertTrue(data.contains(str)));
  39. }
  40. @Test
  41. public void testListFiresDataAddEvent() {
  42. StrBean strBean = new StrBean("Spam");
  43. handler.onDataAppend(strBean);
  44. EasyMock.expectLastCall().times(1);
  45. EasyMock.replay(handler);
  46. dataSource.addDataChangeHandler(handler);
  47. dataSource.save(strBean);
  48. }
  49. @Test
  50. public void testListFiresDataRemoveEvent() {
  51. StrBean strBean = data.get(0);
  52. handler.onDataRemove(strBean);
  53. EasyMock.expectLastCall().times(1);
  54. EasyMock.replay(handler);
  55. dataSource.addDataChangeHandler(handler);
  56. dataSource.remove(strBean);
  57. }
  58. @Test
  59. public void testListFiresDataUpdateEvent() {
  60. StrBean strBean = data.get(0);
  61. handler.onDataUpdate(strBean);
  62. EasyMock.expectLastCall().times(1);
  63. EasyMock.replay(handler);
  64. dataSource.addDataChangeHandler(handler);
  65. strBean.setValue("Fuu");
  66. dataSource.save(strBean);
  67. }
  68. @After
  69. public void tearDown() {
  70. EasyMock.verify(handler);
  71. }
  72. private List<StrBean> createData() {
  73. List<StrBean> list = new ArrayList<>();
  74. Stream.of("Foo", "Bar", "Baz").map(StrBean::new).forEach(list::add);
  75. return list;
  76. }
  77. }