| 1 21 package com.db4o.db4ounit.common.classindex; 22 23 import com.db4o.YapClass; 24 import com.db4o.db4ounit.common.btree.ExpectingVisitor; 25 import com.db4o.inside.classindex.ClassIndexStrategy; 26 27 import db4ounit.extensions.AbstractDb4oTestCase; 28 import db4ounit.extensions.fixtures.*; 29 30 public class ClassIndexTestCase extends AbstractDb4oTestCase implements OptOutCS{ 31 32 public static class Item { 33 public String name; 34 35 public Item(String _name) { 36 this.name = _name; 37 } 38 } 39 40 public static void main(String [] args) { 41 new ClassIndexTestCase().runSolo(); 42 } 43 44 public void testDelete() throws Exception { 45 Item item = new Item("test"); 46 store(item); 47 int id=(int)db().getID(item); 48 assertID(id); 49 50 reopen(); 51 52 item=(Item)db().get(item).next(); 53 id=(int)db().getID(item); 54 assertID(id); 55 56 db().delete(item); 57 db().commit(); 58 assertEmpty(); 59 60 reopen(); 61 62 assertEmpty(); 63 } 64 65 private void assertID(int id) { 66 assertIndex(new Object []{new Integer (id)}); 67 } 68 69 private void assertEmpty() { 70 assertIndex(new Object []{}); 71 } 72 73 private void assertIndex(Object [] expected) { 74 YapClass clazz = stream().getYapClass(reflector().forClass(Item.class)); 75 ExpectingVisitor visitor = new ExpectingVisitor(expected); 76 ClassIndexStrategy index = clazz.index(); 77 index.traverseAll(trans(),visitor); 78 visitor.assertExpectations(); 79 } 80 } 81 | Popular Tags |