package com.vaadin.data.provider; import java.util.ArrayList; import java.util.Arrays; import org.junit.Assert; import org.junit.Test; /** * Test class that verifies that ReplaceListDataProvider functions the way it's * meant to. * */ public class ReplaceListDataProviderTest { private static final StrBean TEST_OBJECT = new StrBean("Foo", 10, -1); private ReplaceListDataProvider dataProvider = new ReplaceListDataProvider( new ArrayList<>(Arrays.asList(TEST_OBJECT))); @Test public void testGetIdOfItem() { Object id = dataProvider.fetch(new Query<>()).findFirst() .map(dataProvider::getId).get(); Assert.assertEquals("DataProvider not using correct identifier getter", TEST_OBJECT.getId(), id); } @Test public void testGetIdOfReplacementItem() { Assert.assertFalse("Test object was stale before making any changes.", dataProvider.isStale(TEST_OBJECT)); dataProvider.refreshItem(new StrBean("Replacement TestObject", 10, -2)); StrBean fromDataProvider = dataProvider.fetch(new Query<>()).findFirst() .get(); Object id = dataProvider.getId(fromDataProvider); Assert.assertNotEquals("DataProvider did not return the replacement", TEST_OBJECT, fromDataProvider); Assert.assertEquals("DataProvider not using correct identifier getter", TEST_OBJECT.getId(), id); Assert.assertTrue("Old test object should be stale", dataProvider.isStale(TEST_OBJECT)); } }