public void test() throws Exception { store(new Original("original")); db().commit(); Assert.areEqual(1, countOccurences(Original.class)); // Rename messages are visible at level 1 // fixture().config().messageLevel(1); ObjectClass oc = fixture().config().objectClass(Original.class); // allways rename fields first oc.objectField("originalName").rename("changedName"); // we must use ReflectPlatform here as the string must include // the assembly name in .net oc.rename(CrossPlatformServices.fullyQualifiedName(Changed.class)); reopen(); Assert.areEqual(0, countOccurences(Original.class)); Assert.areEqual(1, countOccurences(Changed.class)); Changed changed = (Changed) retrieveOnlyInstance(Changed.class); Assert.areEqual("original", changed.changedName); }
public <T, T1> void querydb( EmbeddedConfiguration config, int[] count, Class<T> class1, Class<T1> class2) { EmbeddedObjectContainer database = Db4oEmbedded.openFile(config, tempFile()); try { List<T> list = database.query(class1); Assert.areEqual( count[0], list.size(), "Unexpected result querying for " + class1.getSimpleName()); if (count[0] > 0) { // System.out.println("Querying for " + class1.getSimpleName() + " getting " + // list.get(0).getClass().getSimpleName()); } List<T1> list1 = database.query(class2); Assert.areEqual( count[1], list1.size(), "Unexpected result querying for " + class2.getSimpleName()); if (count[1] > 0) { // System.out.println("Querying for " + class2.getSimpleName() + " getting " + // list1.get(0).getClass().getSimpleName()); } } finally { database.close(); } }