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 4.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. package com.vaadin.client.ui.grid;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertTrue;
  4. import java.util.Arrays;
  5. import org.easymock.EasyMock;
  6. import org.junit.Test;
  7. import com.vaadin.client.data.DataChangeHandler;
  8. import com.vaadin.client.widget.grid.datasources.ListDataSource;
  9. public class ListDataSourceTest {
  10. @Test
  11. public void testDataSourceConstruction() throws Exception {
  12. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  13. assertEquals(4, ds.size());
  14. assertEquals(0, (int) ds.getRow(0));
  15. assertEquals(1, (int) ds.getRow(1));
  16. assertEquals(2, (int) ds.getRow(2));
  17. assertEquals(3, (int) ds.getRow(3));
  18. ds = new ListDataSource<>(Arrays.asList(0, 1, 2, 3));
  19. assertEquals(4, ds.size());
  20. assertEquals(0, (int) ds.getRow(0));
  21. assertEquals(1, (int) ds.getRow(1));
  22. assertEquals(2, (int) ds.getRow(2));
  23. assertEquals(3, (int) ds.getRow(3));
  24. }
  25. @Test
  26. public void testListAddOperation() throws Exception {
  27. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  28. DataChangeHandler handler = EasyMock
  29. .createNiceMock(DataChangeHandler.class);
  30. ds.addDataChangeHandler(handler);
  31. handler.dataAdded(4, 1);
  32. EasyMock.expectLastCall();
  33. EasyMock.replay(handler);
  34. ds.asList().add(4);
  35. assertEquals(5, ds.size());
  36. assertEquals(0, (int) ds.getRow(0));
  37. assertEquals(1, (int) ds.getRow(1));
  38. assertEquals(2, (int) ds.getRow(2));
  39. assertEquals(3, (int) ds.getRow(3));
  40. assertEquals(4, (int) ds.getRow(4));
  41. }
  42. @Test
  43. public void testListAddAllOperation() throws Exception {
  44. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  45. DataChangeHandler handler = EasyMock
  46. .createNiceMock(DataChangeHandler.class);
  47. ds.addDataChangeHandler(handler);
  48. handler.dataAdded(4, 3);
  49. EasyMock.expectLastCall();
  50. EasyMock.replay(handler);
  51. ds.asList().addAll(Arrays.asList(4, 5, 6));
  52. assertEquals(7, ds.size());
  53. assertEquals(0, (int) ds.getRow(0));
  54. assertEquals(1, (int) ds.getRow(1));
  55. assertEquals(2, (int) ds.getRow(2));
  56. assertEquals(3, (int) ds.getRow(3));
  57. assertEquals(4, (int) ds.getRow(4));
  58. assertEquals(5, (int) ds.getRow(5));
  59. assertEquals(6, (int) ds.getRow(6));
  60. }
  61. @Test
  62. public void testListRemoveOperation() throws Exception {
  63. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  64. DataChangeHandler handler = EasyMock
  65. .createNiceMock(DataChangeHandler.class);
  66. ds.addDataChangeHandler(handler);
  67. handler.dataRemoved(3, 1);
  68. EasyMock.expectLastCall();
  69. EasyMock.replay(handler);
  70. ds.asList().remove(2);
  71. assertEquals(3, ds.size());
  72. assertEquals(0, (int) ds.getRow(0));
  73. assertEquals(1, (int) ds.getRow(1));
  74. assertEquals(3, (int) ds.getRow(2));
  75. }
  76. @Test
  77. public void testListRemoveAllOperation() throws Exception {
  78. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  79. DataChangeHandler handler = EasyMock
  80. .createNiceMock(DataChangeHandler.class);
  81. ds.addDataChangeHandler(handler);
  82. handler.dataRemoved(0, 3);
  83. EasyMock.expectLastCall();
  84. EasyMock.replay(handler);
  85. ds.asList().removeAll(Arrays.asList(0, 2, 3));
  86. assertEquals(1, ds.size());
  87. assertEquals(1, (int) ds.getRow(0));
  88. }
  89. @Test
  90. public void testListClearOperation() throws Exception {
  91. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  92. DataChangeHandler handler = EasyMock
  93. .createNiceMock(DataChangeHandler.class);
  94. ds.addDataChangeHandler(handler);
  95. handler.dataRemoved(0, 4);
  96. EasyMock.expectLastCall();
  97. EasyMock.replay(handler);
  98. ds.asList().clear();
  99. assertEquals(0, ds.size());
  100. }
  101. @Test(expected = IllegalStateException.class)
  102. public void testFetchingNonExistantItem() {
  103. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  104. ds.ensureAvailability(5, 1);
  105. }
  106. @Test(expected = UnsupportedOperationException.class)
  107. public void testUnsupportedIteratorRemove() {
  108. ListDataSource<Integer> ds = new ListDataSource<>(0, 1, 2, 3);
  109. ds.asList().iterator().remove();
  110. }
  111. @Test
  112. public void sortColumn() {
  113. ListDataSource<Integer> ds = new ListDataSource<>(3, 4, 2, 3, 1);
  114. // TODO Should be simplified to sort(). No point in providing these
  115. // trivial comparators.
  116. ds.sort((o1, o2) -> o1.compareTo(o2));
  117. assertTrue(Arrays.equals(ds.asList().toArray(),
  118. new Integer[] { 1, 2, 3, 3, 4 }));
  119. }
  120. }