/* check bob1 --> bob2 */
assertRef1();
/* add bob1 --> bob3 */
bob1 = (Bob1) store.readAndGetRoot();
Bob3 bob3 = new Bob3();
bob1.setBob3(bob3);
store.save(true, false);
/* check bob1 --> bob2, bob1 --> bob3 */
assertRef2();
/* add bob2 --> bob1 */
bob1 = (Bob1) store.readAndGetRoot();
bob2 = bob1.getBob2();
bob2.setBob1(bob1);
store.save(true, false);
/* check bob1 --> bob2, bob1 --> bob3,bob2 --> bob1 */
assertRef3();
/* add bob2 --> bob3 */
bob1 = (Bob1) store.readAndGetRoot();
bob2 = bob1.getBob2();
bob3 = bob1.getBob3();
bob2.setBob3(bob3);
store.save(true, false);
/* check bob1 --> bob2, bob1 --> bob3,bob2 --> bob1,bob2 --> bob3 */
assertRef4();
/* add bob3 --> bob1 */
bob1 = (Bob1) store.readAndGetRoot();
bob3 = bob1.getBob3();
bob3.setBob1(bob1);
store.save(true, false);
/*
* check bob1 --> bob2, bob1 --> bob3, bob2 --> bob1, bob2 --> bob3,
* bob3 --> bob1
*/
assertRef5();
/* add bob3 --> bob2 */
bob1 = (Bob1) store.readAndGetRoot();
bob2 = bob1.getBob2();
bob3 = bob1.getBob3();
bob3.setBob2(bob2);
store.save(true, false);
/*
* check bob1 --> bob2, bob1 --> bob3, bob2 --> bob1, bob2 --> bob3,
* bob3 --> bob1, bob3 --> bob2
*/
assertRef6();
/* remove bob3 --> bob2 */
bob1 = (Bob1) store.readAndGetRoot();
bob3 = bob1.getBob3();
bob3.setBob2(null);
store.save(true, false);
/*
* check bob1 --> bob2, bob1 --> bob3, bob2 --> bob1, bob2 --> bob3,
* bob3 --> bob1
*/
assertRef5();
/* remove bob3 --> bob1 */
bob1 = (Bob1) store.readAndGetRoot();
bob3 = bob1.getBob3();
bob3.setBob1(null);
store.save(true, false);
/* check bob1 --> bob2, bob1 --> bob3,bob2 --> bob1,bob2 --> bob3 */
assertRef4();