public void testAddRemoveWithSession() throws Throwable {
final IDataAccessSession session = filePersistence
.createDataAccessSession();
for (int index = 0; index < 5; index++) {
final Item item = new Item();// NOPMD
item.setValue(EMPTY_STRING + index);// NOPMD
logger.info("item to add " + item);
session.open();
session.setObject(ITEM + index, item);
session.close(EnumFilePersistenceCloseAction.SAVE);
logger.info("item added " + item);
}
for (int index = 0; index < 5; index++) {
session.open();
final Item item = (Item) session.getObject(ITEM + index);
assertNotNull("item " + index + " not found", item);
final Item itemCopy = new Item(item);// NOPMD new in loop
logger.info("item read " + itemCopy);
session.close(EnumFilePersistenceCloseAction.SAVE);
assertEquals("bad value", EMPTY_STRING + index, itemCopy.getValue());// NOPMD
session.open();
final Item removedItem = (Item) session.removeObject(ITEM + index);
logger.info("item deleted " + removedItem);
assertEquals("bad item", itemCopy, removedItem);
session.close(EnumFilePersistenceCloseAction.SAVE);
}
}