private <T extends DbObject> void checkCrudDbObject(ConnectedCrud<T, Long> objectCrud, T object) throws SQLException { assertNull(objectCrud.read(object.getId())); // create Long key = objectCrud.create(object, new CheckedConsumer<Long>() { Long key; @Override public void accept(Long aLong) throws Exception { key = aLong; } }).key; assertNull(key); key = object.getId(); // read assertEquals(object, objectCrud.read(key)); object.setName("Udpdated"); // update objectCrud.update(object); assertEquals(object, objectCrud.read(key)); // delete objectCrud.delete(key); assertNull(objectCrud.read(key)); objectCrud.create(object); assertEquals(object, objectCrud.where("id = :id", Long.class).readFirst(object.getId())); assertEquals(Arrays.asList(object), objectCrud.where("name = :name and id = :id", DbObject.class).read(object, new ListCollector<T>()).getList()); }