public class DeleteCleanupTest extends JugileTestCase {
public void testNNRemoveAfterCommit() {
Domain.reset();
Domain d = Domain.getDomain();
Family f1 = d.createFamily().setName("f1");
Family f2 = d.createFamily().setName("f2");
Person p1 = d.createPerson().setName("p1");
Person p2 = d.createPerson().setName("p2");
f1.addFriendPerson(p1);
f1.addFriendPerson(p2);
d.commit();
f1 = d.getFamily(f1.id());
assertEquals(2,f1.getFriendPersons().size());
p1 = d.getPerson(p1.id());
assertEquals(1,p1.getFriendFamilies().size());
f1.removeFriendPerson(p1); // family -> person
d.commit();
f1 = d.getFamily(f1.id());
assertEquals(1,f1.getFriendPersons().size());
p1 = d.getPerson(p1.id());
assertEquals(0,p1.getFriendFamilies().size());
p2 = d.getPerson(p2.id());
p2.removeFriendFamily(f1); // person -> family
d.commit();
f1 = d.getFamily(f1.id());
assertEquals(0,f1.getFriendPersons().size());
p2 = d.getPerson(p2.id());
assertEquals(0,p2.getFriendFamilies().size());
}