package it.cavallium.strangedb.tests; import it.cavallium.strangedb.java.annotations.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import it.cavallium.strangedb.java.objects.EnhancedObject; import it.cavallium.strangedb.java.database.IDatabaseTools; import it.cavallium.strangedb.utils.NTestUtils; import java.io.IOException; public class Clean { private NTestUtils.WrappedDb db; private RootTwoClasses root; @Before public void setUp() throws Exception { db = NTestUtils.wrapDb().create((db) -> { root = db.get().loadRoot(RootTwoClasses::new); }); root.class1 = new NTestUtils.RootClass(db.get()); db.setRootClassValues(root.class1); root.class2 = new NTestUtils.RootClass(db.get()); db.setRootClassValues(root.class2); root.setClass3(new NTestUtils.RootClass(db.get())); db.setRootClassValues(root.getClass3()); root.setClass4(new NTestUtils.RootClass(db.get())); db.setRootClassValues(root.getClass4()); } @Test public void shouldMatchMultipleEnhancedObjects() throws IOException { db.testRootClassValues(root.class1); db.testRootClassValues(root.class2); db.testRootClassValues(root.getClass3()); db.testRootClassValues(root.getClass4()); db.get().closeAndClean(); db = NTestUtils.wrapDb().create((db) -> { root = db.get().loadRoot(RootTwoClasses::new); }); } @After public void tearDown() throws Exception { db.delete(); } public static class RootTwoClasses extends EnhancedObject { @DbField(id = 0, type = DbDataType.ENHANCED_OBJECT) public NTestUtils.RootClass class1; @DbField(id = 1, type = DbDataType.ENHANCED_OBJECT) public NTestUtils.RootClass class2; public RootTwoClasses() { super(); } public RootTwoClasses(IDatabaseTools databaseTools) throws IOException { super(databaseTools); } @DbProperty(id = 0, type = DbDataType.ENHANCED_OBJECT) @DbPropertyGetter public NTestUtils.RootClass getClass3() { return getProperty(); } @DbProperty(id = 0, type = DbDataType.ENHANCED_OBJECT) @DbPropertySetter public void setClass3(NTestUtils.RootClass value) { setProperty(value); } @DbProperty(id = 1, type = DbDataType.ENHANCED_OBJECT) @DbPropertyGetter public NTestUtils.RootClass getClass4() { return getProperty(); } @DbProperty(id = 1, type = DbDataType.ENHANCED_OBJECT) @DbPropertySetter public void setClass4(NTestUtils.RootClass value) { setProperty(value); } } }