private <T extends DbObject> void checkCrudDbObject(ConnectedCrud<T, Long> objectCrud, T object) throws SQLException {
assertNull(objectCrud.read(object.getId()));
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();
assertEquals(object, objectCrud.read(key));
object.setName("Udpdated");
objectCrud.update(object);
assertEquals(object, objectCrud.read(key));
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());
}