1 21 package com.db4o.db4ounit.common.assorted; 22 23 import com.db4o.ObjectSet; 24 import com.db4o.config.Configuration; 25 26 import db4ounit.Assert; 27 import db4ounit.extensions.AbstractDb4oTestCase; 28 29 public class ReAddCascadedDeleteTestCase extends AbstractDb4oTestCase { 30 31 public static void main(String [] args) { 32 new ReAddCascadedDeleteTestCase().runClientServer(); 33 } 34 35 public static class Item { 36 37 public String _name; 38 39 public Item _member; 40 41 public Item() { 42 } 43 44 public Item(String name) { 45 _name = name; 46 } 47 48 public Item(String name, Item member) { 49 _name = name; 50 _member = member; 51 } 52 } 53 54 protected void configure(Configuration config){ 55 config.objectClass(Item.class).cascadeOnDelete(true); 56 } 57 58 protected void store() { 59 db().set(new Item("parent", new Item("child"))); 60 } 61 62 public void testDeletingAndReaddingMember() throws Exception { 63 deleteParentAndReAddChild(); 64 65 reopen(); 66 67 Assert.isNotNull(query("child")); 68 Assert.isNull(query("parent")); 69 } 70 71 private void deleteParentAndReAddChild() { 72 Item i = query("parent"); 73 db().delete(i); 74 db().set(i._member); 75 db().commit(); 76 } 77 78 private Item query(String name){ 79 ObjectSet objectSet = db().get(new Item(name)); 80 if (!objectSet.hasNext()) { 81 return null; 82 } 83 return (Item) objectSet.next(); 84 } 85 } 86 | Popular Tags |