DATA_MANAGER_INTEGRITY_CHECKER.checkIntegrity(dataManager);
// ?
bob1 = (Bob1) store.readAndGetRoot();
assertNotNull("root object must exist", bob1);
DataRecordIdentifier id1 = store
.getDataRecordIdentifierAssociatedToObject(bob1);
assertNotNull(BOB1_MUST_HAVE_DATA_RECORD_IDENTIFIER, id1);
assertObjectLink(Bob1.class, id1, new DataRecordIdentifier[] {});
Bob2 bob2 = new Bob2();
bob1.setBob2(bob2);
store.save(true, false);
DATA_MANAGER_INTEGRITY_CHECKER.checkIntegrity(dataManager);
bob1 = (Bob1) store.readAndGetRoot();
id1 = store.getDataRecordIdentifierAssociatedToObject(bob1);
assertNotNull(BOB1_MUST_HAVE_DATA_RECORD_IDENTIFIER, id1);
bob2 = bob1.getBob2();
assertNotNull("bob1 must reference bob2", bob2);
DataRecordIdentifier id2 = store
.getDataRecordIdentifierAssociatedToObject(bob2);
assertNotNull(BOB2_MUST_HAVE_DATA_RECORD_IDENTIFIER, id2);
assertObjectLink(Bob1.class, id1, new DataRecordIdentifier[] { id2 });
assertObjectLink(Bob2.class, id2, new DataRecordIdentifier[] {});
bob2.setBob1(bob1);
store.save(true, false);
DATA_MANAGER_INTEGRITY_CHECKER.checkIntegrity(dataManager);
bob1 = (Bob1) store.readAndGetRoot();
id1 = store.getDataRecordIdentifierAssociatedToObject(bob1);
assertNotNull(BOB1_MUST_HAVE_DATA_RECORD_IDENTIFIER, id1);
bob2 = bob1.getBob2();
id2 = store.getDataRecordIdentifierAssociatedToObject(bob2);
assertNotNull(BOB2_MUST_HAVE_DATA_RECORD_IDENTIFIER, id2);
assertObjectLink(Bob1.class, id1, new DataRecordIdentifier[] { id2 });
assertObjectLink(Bob2.class, id2, new DataRecordIdentifier[] { id1 });
Bob3 bob3 = new Bob3();
bob2.setBob3(bob3);
store.save(true, false);
DATA_MANAGER_INTEGRITY_CHECKER.checkIntegrity(dataManager);
bob1 = (Bob1) store.readAndGetRoot();
id1 = store.getDataRecordIdentifierAssociatedToObject(bob1);
assertNotNull(BOB1_MUST_HAVE_DATA_RECORD_IDENTIFIER, id1);
bob2 = bob1.getBob2();
id2 = store.getDataRecordIdentifierAssociatedToObject(bob2);
assertNotNull(BOB2_MUST_HAVE_DATA_RECORD_IDENTIFIER, id2);
bob3 = bob2.getBob3();
final DataRecordIdentifier id3 = store
.getDataRecordIdentifierAssociatedToObject(bob3);
assertNotNull("bob3 must have data record identifier", id3);
assertObjectLink(Bob1.class, id1, new DataRecordIdentifier[] { id2 });
assertObjectLink(Bob2.class, id2,