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.

GridColumnAddingAndRemovingTest.java 3.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package com.vaadin.v7.tests.server.component.grid;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertNotNull;
  4. import static org.junit.Assert.assertNull;
  5. import org.junit.Before;
  6. import org.junit.Test;
  7. import com.vaadin.v7.data.Container;
  8. import com.vaadin.v7.data.Property;
  9. import com.vaadin.v7.data.util.IndexedContainer;
  10. import com.vaadin.v7.ui.Grid;
  11. public class GridColumnAddingAndRemovingTest {
  12. Grid grid = new Grid();
  13. Container.Indexed container;
  14. @Before
  15. public void setUp() {
  16. container = grid.getContainerDataSource();
  17. container.addItem();
  18. }
  19. @Test
  20. public void testAddColumn() {
  21. grid.addColumn("foo");
  22. Property<?> property = container
  23. .getContainerProperty(container.firstItemId(), "foo");
  24. assertEquals(property.getType(), String.class);
  25. }
  26. @Test(expected = IllegalStateException.class)
  27. public void testAddColumnTwice() {
  28. grid.addColumn("foo");
  29. grid.addColumn("foo");
  30. }
  31. @Test
  32. public void testAddRemoveAndAddAgainColumn() {
  33. grid.addColumn("foo");
  34. grid.removeColumn("foo");
  35. // Removing a column, doesn't remove the property
  36. Property<?> property = container
  37. .getContainerProperty(container.firstItemId(), "foo");
  38. assertEquals(property.getType(), String.class);
  39. grid.addColumn("foo");
  40. }
  41. @Test
  42. public void testAddNumberColumns() {
  43. grid.addColumn("bar", Integer.class);
  44. grid.addColumn("baz", Double.class);
  45. Property<?> property = container
  46. .getContainerProperty(container.firstItemId(), "bar");
  47. assertEquals(property.getType(), Integer.class);
  48. assertEquals(null, property.getValue());
  49. property = container.getContainerProperty(container.firstItemId(),
  50. "baz");
  51. assertEquals(property.getType(), Double.class);
  52. assertEquals(null, property.getValue());
  53. }
  54. @Test(expected = IllegalStateException.class)
  55. public void testAddDifferentTypeColumn() {
  56. grid.addColumn("foo");
  57. grid.removeColumn("foo");
  58. grid.addColumn("foo", Integer.class);
  59. }
  60. @Test(expected = IllegalStateException.class)
  61. public void testAddColumnToNonDefaultContainer() {
  62. grid.setContainerDataSource(new IndexedContainer());
  63. grid.addColumn("foo");
  64. }
  65. @Test
  66. public void testAddColumnForExistingProperty() {
  67. grid.addColumn("bar");
  68. IndexedContainer container2 = new IndexedContainer();
  69. container2.addContainerProperty("foo", Integer.class, 0);
  70. container2.addContainerProperty("bar", String.class, "");
  71. grid.setContainerDataSource(container2);
  72. assertNull("Grid should not have a column for property foo",
  73. grid.getColumn("foo"));
  74. assertNotNull("Grid did should have a column for property bar",
  75. grid.getColumn("bar"));
  76. for (Grid.Column column : grid.getColumns()) {
  77. assertNotNull("Grid getColumns returned a null value", column);
  78. }
  79. grid.removeAllColumns();
  80. grid.addColumn("foo");
  81. assertNotNull("Grid should now have a column for property foo",
  82. grid.getColumn("foo"));
  83. assertNull("Grid should not have a column for property bar anymore",
  84. grid.getColumn("bar"));
  85. }
  86. @Test(expected = IllegalStateException.class)
  87. public void testAddIncompatibleColumnProperty() {
  88. grid.addColumn("bar");
  89. grid.removeAllColumns();
  90. grid.addColumn("bar", Integer.class);
  91. }
  92. @Test
  93. public void testAddBooleanColumnProperty() {
  94. grid.addColumn("foo", Boolean.class);
  95. Property<?> property = container
  96. .getContainerProperty(container.firstItemId(), "foo");
  97. assertEquals(property.getType(), Boolean.class);
  98. assertEquals(property.getValue(), null);
  99. }
  100. }