summaryrefslogtreecommitdiffstats
path: root/tests/server-side/com/vaadin/data/util/BeanItemContainerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/server-side/com/vaadin/data/util/BeanItemContainerTest.java')
-rw-r--r--tests/server-side/com/vaadin/data/util/BeanItemContainerTest.java718
1 files changed, 0 insertions, 718 deletions
diff --git a/tests/server-side/com/vaadin/data/util/BeanItemContainerTest.java b/tests/server-side/com/vaadin/data/util/BeanItemContainerTest.java
deleted file mode 100644
index 29043b1670..0000000000
--- a/tests/server-side/com/vaadin/data/util/BeanItemContainerTest.java
+++ /dev/null
@@ -1,718 +0,0 @@
-package com.vaadin.data.util;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.Assert;
-
-import com.vaadin.data.Container;
-import com.vaadin.data.Item;
-import com.vaadin.data.util.BeanItemContainer;
-
-/**
- * Test basic functionality of BeanItemContainer.
- *
- * Most sorting related tests are in {@link BeanItemContainerSortTest}.
- */
-public class BeanItemContainerTest extends AbstractBeanContainerTest {
-
- // basics from the common container test
-
- private Map<String, ClassName> nameToBean = new LinkedHashMap<String, ClassName>();
-
- private BeanItemContainer<ClassName> getContainer() {
- return new BeanItemContainer<ClassName>(ClassName.class);
- }
-
- @Override
- public void setUp() {
- nameToBean.clear();
-
- for (int i = 0; i < sampleData.length; i++) {
- ClassName className = new ClassName(sampleData[i], i);
- nameToBean.put(sampleData[i], className);
- }
- }
-
- @Override
- @SuppressWarnings("unchecked")
- protected void initializeContainer(Container container) {
- BeanItemContainer<ClassName> beanItemContainer = (BeanItemContainer<ClassName>) container;
-
- beanItemContainer.removeAllItems();
-
- Iterator<ClassName> it = nameToBean.values().iterator();
- while (it.hasNext()) {
- beanItemContainer.addBean(it.next());
- }
- }
-
- @Override
- protected void validateContainer(Container container,
- Object expectedFirstItemId, Object expectedLastItemId,
- Object itemIdInSet, Object itemIdNotInSet,
- boolean checkGetItemNull, int expectedSize) {
- Object notInSet = nameToBean.get(itemIdNotInSet);
- if (notInSet == null && itemIdNotInSet != null) {
- notInSet = new ClassName(String.valueOf(itemIdNotInSet), 9999);
- }
- super.validateContainer(container, nameToBean.get(expectedFirstItemId),
- nameToBean.get(expectedLastItemId),
- nameToBean.get(itemIdInSet), notInSet, checkGetItemNull,
- expectedSize);
- }
-
- @Override
- protected boolean isFilteredOutItemNull() {
- return false;
- }
-
- public void testBasicOperations() {
- testBasicContainerOperations(getContainer());
- }
-
- public void testFiltering() {
- testContainerFiltering(getContainer());
- }
-
- public void testSorting() {
- testContainerSorting(getContainer());
- }
-
- public void testSortingAndFiltering() {
- testContainerSortingAndFiltering(getContainer());
- }
-
- // duplicated from parent class and modified - adding items to
- // BeanItemContainer differs from other containers
- public void testContainerOrdered() {
- BeanItemContainer<String> container = new BeanItemContainer<String>(
- String.class);
-
- String id = "test1";
-
- Item item = container.addBean(id);
- assertNotNull(item);
-
- assertEquals(id, container.firstItemId());
- assertEquals(id, container.lastItemId());
-
- // isFirstId
- assertTrue(container.isFirstId(id));
- assertTrue(container.isFirstId(container.firstItemId()));
- // isLastId
- assertTrue(container.isLastId(id));
- assertTrue(container.isLastId(container.lastItemId()));
-
- // Add a new item before the first
- // addItemAfter
- String newFirstId = "newFirst";
- item = container.addItemAfter(null, newFirstId);
- assertNotNull(item);
- assertNotNull(container.getItem(newFirstId));
-
- // isFirstId
- assertTrue(container.isFirstId(newFirstId));
- assertTrue(container.isFirstId(container.firstItemId()));
- // isLastId
- assertTrue(container.isLastId(id));
- assertTrue(container.isLastId(container.lastItemId()));
-
- // nextItemId
- assertEquals(id, container.nextItemId(newFirstId));
- assertNull(container.nextItemId(id));
- assertNull(container.nextItemId("not-in-container"));
-
- // prevItemId
- assertEquals(newFirstId, container.prevItemId(id));
- assertNull(container.prevItemId(newFirstId));
- assertNull(container.prevItemId("not-in-container"));
-
- // addItemAfter(Object)
- String newSecondItemId = "newSecond";
- item = container.addItemAfter(newFirstId, newSecondItemId);
- // order is now: newFirstId, newSecondItemId, id
- assertNotNull(item);
- assertNotNull(container.getItem(newSecondItemId));
- assertEquals(id, container.nextItemId(newSecondItemId));
- assertEquals(newFirstId, container.prevItemId(newSecondItemId));
-
- // addItemAfter(Object,Object)
- String fourthId = "id of the fourth item";
- Item fourth = container.addItemAfter(newFirstId, fourthId);
- // order is now: newFirstId, fourthId, newSecondItemId, id
- assertNotNull(fourth);
- assertEquals(fourth, container.getItem(fourthId));
- assertEquals(newSecondItemId, container.nextItemId(fourthId));
- assertEquals(newFirstId, container.prevItemId(fourthId));
-
- // addItemAfter(Object,Object)
- Object fifthId = "fifth";
- Item fifth = container.addItemAfter(null, fifthId);
- // order is now: fifthId, newFirstId, fourthId, newSecondItemId, id
- assertNotNull(fifth);
- assertEquals(fifth, container.getItem(fifthId));
- assertEquals(newFirstId, container.nextItemId(fifthId));
- assertNull(container.prevItemId(fifthId));
-
- }
-
- public void testContainerIndexed() {
- testContainerIndexed(getContainer(), nameToBean.get(sampleData[2]), 2,
- false, new ClassName("org.vaadin.test.Test", 8888), true);
- }
-
- @SuppressWarnings("deprecation")
- public void testCollectionConstructors() {
- List<ClassName> classNames = new ArrayList<ClassName>();
- classNames.add(new ClassName("a.b.c.Def", 1));
- classNames.add(new ClassName("a.b.c.Fed", 2));
- classNames.add(new ClassName("b.c.d.Def", 3));
-
- // note that this constructor is problematic, users should use the
- // version that
- // takes the bean class as a parameter
- BeanItemContainer<ClassName> container = new BeanItemContainer<ClassName>(
- classNames);
-
- Assert.assertEquals(3, container.size());
- Assert.assertEquals(classNames.get(0), container.firstItemId());
- Assert.assertEquals(classNames.get(1), container.getIdByIndex(1));
- Assert.assertEquals(classNames.get(2), container.lastItemId());
-
- BeanItemContainer<ClassName> container2 = new BeanItemContainer<ClassName>(
- ClassName.class, classNames);
-
- Assert.assertEquals(3, container2.size());
- Assert.assertEquals(classNames.get(0), container2.firstItemId());
- Assert.assertEquals(classNames.get(1), container2.getIdByIndex(1));
- Assert.assertEquals(classNames.get(2), container2.lastItemId());
- }
-
- // this only applies to the collection constructor with no type parameter
- @SuppressWarnings("deprecation")
- public void testEmptyCollectionConstructor() {
- try {
- new BeanItemContainer<ClassName>((Collection<ClassName>) null);
- Assert.fail("Initializing BeanItemContainer from a null collection should not work!");
- } catch (IllegalArgumentException e) {
- // success
- }
- try {
- new BeanItemContainer<ClassName>(new ArrayList<ClassName>());
- Assert.fail("Initializing BeanItemContainer from an empty collection should not work!");
- } catch (IllegalArgumentException e) {
- // success
- }
- }
-
- public void testItemSetChangeListeners() {
- BeanItemContainer<ClassName> container = getContainer();
- ItemSetChangeCounter counter = new ItemSetChangeCounter();
- container.addListener(counter);
-
- ClassName cn1 = new ClassName("com.example.Test", 1111);
- ClassName cn2 = new ClassName("com.example.Test2", 2222);
-
- initializeContainer(container);
- counter.reset();
- container.addBean(cn1);
- counter.assertOnce();
-
- initializeContainer(container);
- counter.reset();
- container.addItem(cn1);
- counter.assertOnce();
- // no notification if already in container
- container.addItem(cn1);
- counter.assertNone();
- container.addItem(cn2);
- counter.assertOnce();
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(null, cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.firstItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(container.firstItemId(), cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.getIdByIndex(1),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(container.lastItemId(), cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.lastItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(0, cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.firstItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(1, cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.getIdByIndex(1),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(container.size(), cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.lastItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.removeItem(nameToBean.get(sampleData[0]));
- counter.assertOnce();
-
- initializeContainer(container);
- counter.reset();
- // no notification for removing a non-existing item
- container.removeItem(cn1);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
- container.removeAllItems();
- counter.assertOnce();
- // already empty
- container.removeAllItems();
- counter.assertNone();
-
- }
-
- public void testItemSetChangeListenersFiltering() {
- BeanItemContainer<ClassName> container = getContainer();
- ItemSetChangeCounter counter = new ItemSetChangeCounter();
- container.addListener(counter);
-
- ClassName cn1 = new ClassName("com.example.Test", 1111);
- ClassName cn2 = new ClassName("com.example.Test2", 2222);
- ClassName other = new ClassName("com.example.Other", 3333);
-
- // simply adding or removing container filters should cause event
- // (content changes)
-
- initializeContainer(container);
- counter.reset();
- container.addContainerFilter(SIMPLE_NAME, "a", true, false);
- counter.assertOnce();
- container.removeContainerFilters(SIMPLE_NAME);
- counter.assertOnce();
-
- initializeContainer(container);
- counter.reset();
- container.addContainerFilter(SIMPLE_NAME, "a", true, false);
- counter.assertOnce();
- container.removeAllContainerFilters();
- counter.assertOnce();
-
- // perform operations while filtering container
-
- initializeContainer(container);
- counter.reset();
- container.addContainerFilter(FULLY_QUALIFIED_NAME, "Test", true, false);
- counter.assertOnce();
-
- // passes filter
- container.addBean(cn1);
- counter.assertOnce();
-
- // passes filter but already in the container
- container.addBean(cn1);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
-
- // passes filter
- container.addItem(cn1);
- counter.assertOnce();
- // already in the container
- container.addItem(cn1);
- counter.assertNone();
- container.addItem(cn2);
- counter.assertOnce();
- // does not pass filter
- container.addItem(other);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(null, cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.firstItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(container.firstItemId(), cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.getIdByIndex(1),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(container.lastItemId(), cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.lastItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(0, cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.firstItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(1, cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.getIdByIndex(1),
- FULLY_QUALIFIED_NAME).getValue());
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(container.size(), cn1);
- counter.assertOnce();
- Assert.assertEquals(
- "com.example.Test",
- container.getContainerProperty(container.lastItemId(),
- FULLY_QUALIFIED_NAME).getValue());
-
- // does not pass filter
- // note: testAddRemoveWhileFiltering() checks position for these after
- // removing filter etc, here concentrating on listeners
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(null, other);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(container.firstItemId(), other);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
- container.addItemAfter(container.lastItemId(), other);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(0, other);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(1, other);
- counter.assertNone();
-
- initializeContainer(container);
- counter.reset();
- container.addItemAt(container.size(), other);
- counter.assertNone();
-
- // passes filter
-
- initializeContainer(container);
- counter.reset();
- container.addItem(cn1);
- counter.assertOnce();
- container.removeItem(cn1);
- counter.assertOnce();
-
- // does not pass filter
-
- initializeContainer(container);
- counter.reset();
- // not visible
- container.removeItem(nameToBean.get(sampleData[0]));
- counter.assertNone();
-
- container.removeAllItems();
- counter.assertOnce();
- // no visible items
- container.removeAllItems();
- counter.assertNone();
- }
-
- public void testAddRemoveWhileFiltering() {
- BeanItemContainer<Person> container = new BeanItemContainer<Person>(
- Person.class);
-
- Person john = new Person("John");
- Person jane = new Person("Jane");
- Person matthew = new Person("Matthew");
-
- Person jack = new Person("Jack");
- Person michael = new Person("Michael");
- Person william = new Person("William");
- Person julia = new Person("Julia");
- Person george = new Person("George");
- Person mark = new Person("Mark");
-
- container.addBean(john);
- container.addBean(jane);
- container.addBean(matthew);
-
- assertEquals(3, container.size());
- // john, jane, matthew
-
- container.addContainerFilter("name", "j", true, true);
-
- assertEquals(2, container.size());
- // john, jane, (matthew)
-
- // add a bean that passes the filter
- container.addBean(jack);
- assertEquals(3, container.size());
- assertEquals(jack, container.lastItemId());
- // john, jane, (matthew), jack
-
- // add beans that do not pass the filter
- container.addBean(michael);
- // john, jane, (matthew), jack, (michael)
- container.addItemAfter(null, william);
- // (william), john, jane, (matthew), jack, (michael)
-
- // add after an item that is shown
- container.addItemAfter(john, george);
- // (william), john, (george), jane, (matthew), jack, (michael)
- assertEquals(3, container.size());
- assertEquals(john, container.firstItemId());
-
- // add after an item that is not shown does nothing
- container.addItemAfter(william, julia);
- // (william), john, (george), jane, (matthew), jack, (michael)
- assertEquals(3, container.size());
- assertEquals(john, container.firstItemId());
-
- container.addItemAt(1, julia);
- // (william), john, julia, (george), jane, (matthew), jack, (michael)
-
- container.addItemAt(2, mark);
- // (william), john, julia, (mark), (george), jane, (matthew), jack,
- // (michael)
-
- container.removeItem(matthew);
- // (william), john, julia, (mark), (george), jane, jack, (michael)
-
- assertEquals(4, container.size());
- assertEquals(jack, container.lastItemId());
-
- container.removeContainerFilters("name");
-
- assertEquals(8, container.size());
- assertEquals(william, container.firstItemId());
- assertEquals(john, container.nextItemId(william));
- assertEquals(julia, container.nextItemId(john));
- assertEquals(mark, container.nextItemId(julia));
- assertEquals(george, container.nextItemId(mark));
- assertEquals(jane, container.nextItemId(george));
- assertEquals(jack, container.nextItemId(jane));
- assertEquals(michael, container.lastItemId());
- }
-
- public void testRefilterOnPropertyModification() {
- BeanItemContainer<Person> container = new BeanItemContainer<Person>(
- Person.class);
-
- Person john = new Person("John");
- Person jane = new Person("Jane");
- Person matthew = new Person("Matthew");
-
- container.addBean(john);
- container.addBean(jane);
- container.addBean(matthew);
-
- assertEquals(3, container.size());
- // john, jane, matthew
-
- container.addContainerFilter("name", "j", true, true);
-
- assertEquals(2, container.size());
- // john, jane, (matthew)
-
- // #6053 currently, modification of an item that is not visible does not
- // trigger refiltering - should it?
- // matthew.setName("Julia");
- // assertEquals(3, container.size());
- // john, jane, julia
-
- john.setName("Mark");
- assertEquals(2, container.size());
- // (mark), jane, julia
-
- container.removeAllContainerFilters();
-
- assertEquals(3, container.size());
- }
-
- public void testAddAll() {
- BeanItemContainer<Person> container = new BeanItemContainer<Person>(
- Person.class);
-
- Person john = new Person("John");
- Person jane = new Person("Jane");
- Person matthew = new Person("Matthew");
-
- container.addBean(john);
- container.addBean(jane);
- container.addBean(matthew);
-
- assertEquals(3, container.size());
- // john, jane, matthew
-
- Person jack = new Person("Jack");
- Person michael = new Person("Michael");
-
- // addAll
- container.addAll(Arrays.asList(jack, michael));
- // john, jane, matthew, jack, michael
-
- assertEquals(5, container.size());
- assertEquals(jane, container.nextItemId(john));
- assertEquals(matthew, container.nextItemId(jane));
- assertEquals(jack, container.nextItemId(matthew));
- assertEquals(michael, container.nextItemId(jack));
- }
-
- public void testUnsupportedMethods() {
- BeanItemContainer<Person> container = new BeanItemContainer<Person>(
- Person.class);
- container.addBean(new Person("John"));
-
- try {
- container.addItem();
- Assert.fail();
- } catch (UnsupportedOperationException e) {
- // should get exception
- }
-
- try {
- container.addItemAfter(new Person("Jane"));
- Assert.fail();
- } catch (UnsupportedOperationException e) {
- // should get exception
- }
-
- try {
- container.addItemAt(0);
- Assert.fail();
- } catch (UnsupportedOperationException e) {
- // should get exception
- }
-
- try {
- container.addContainerProperty("lastName", String.class, "");
- Assert.fail();
- } catch (UnsupportedOperationException e) {
- // should get exception
- }
-
- assertEquals(1, container.size());
- }
-
- public void testRemoveContainerProperty() {
- BeanItemContainer<Person> container = new BeanItemContainer<Person>(
- Person.class);
- Person john = new Person("John");
- container.addBean(john);
-
- Assert.assertEquals("John", container
- .getContainerProperty(john, "name").getValue());
- Assert.assertTrue(container.removeContainerProperty("name"));
- Assert.assertNull(container.getContainerProperty(john, "name"));
-
- Assert.assertNotNull(container.getItem(john));
- // property removed also from item
- Assert.assertNull(container.getItem(john).getItemProperty("name"));
- }
-
- public void testAddNullBean() {
- BeanItemContainer<Person> container = new BeanItemContainer<Person>(
- Person.class);
- Person john = new Person("John");
- container.addBean(john);
-
- assertNull(container.addItem(null));
- assertNull(container.addItemAfter(null, null));
- assertNull(container.addItemAfter(john, null));
- assertNull(container.addItemAt(0, null));
-
- assertEquals(1, container.size());
- }
-
- public void testBeanIdResolver() {
- BeanItemContainer<Person> container = new BeanItemContainer<Person>(
- Person.class);
- Person john = new Person("John");
-
- assertSame(john, container.getBeanIdResolver().getIdForBean(john));
- }
-
- public void testNullBeanClass() {
- try {
- new BeanItemContainer<Object>((Class<Object>) null);
- } catch (IllegalArgumentException e) {
- // should get exception
- }
- }
-
- public void testAddNestedContainerProperty() {
- BeanItemContainer<NestedMethodPropertyTest.Person> container = new BeanItemContainer<NestedMethodPropertyTest.Person>(
- NestedMethodPropertyTest.Person.class);
-
- NestedMethodPropertyTest.Person john = new NestedMethodPropertyTest.Person(
- "John", new NestedMethodPropertyTest.Address("Ruukinkatu 2-4",
- 20540));
- container.addBean(john);
-
- assertTrue(container.addNestedContainerProperty("address.street"));
- assertEquals("Ruukinkatu 2-4",
- container.getContainerProperty(john, "address.street")
- .getValue());
- }
-
-}