package org.simantics.db.testing.common; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.Collection; import org.eclipse.core.runtime.Platform; import org.simantics.DefaultChoiceUserAgent; import org.simantics.Simantics; import org.simantics.SimanticsPlatform; import org.simantics.SimanticsPlatform.OntologyRecoveryPolicy; import org.simantics.SimanticsPlatform.RecoveryPolicy; import org.simantics.databoard.Bindings; import org.simantics.databoard.Files; import org.simantics.databoard.binding.Binding; import org.simantics.databoard.binding.error.BindingConstructionException; import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.Statement; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.util.RuntimeEnvironmentRequest; import org.simantics.db.management.ISessionContextProvider; import org.simantics.db.management.ISessionContextProviderSource; import org.simantics.db.management.SessionContext; import org.simantics.db.management.SessionContextProvider; import org.simantics.db.management.SingleSessionContextProviderSource; import org.simantics.db.service.LifecycleSupport; import org.simantics.db.testing.impl.Configuration; import org.simantics.graph.db.TransferableGraphs; import org.simantics.graph.representation.TransferableGraph1; import org.simantics.scl.osgi.SCLOsgi; public class Tests { private static TestHandler testHandler; public static boolean contains(Collection stms, Resource predicate, Resource object) { for(Statement stm : stms) { if(stm.getPredicate().equals(predicate) && stm.getObject().equals(object)) return true; } return false; } public static boolean contains(Collection stms, Resource subject, Resource predicate, Resource object) { for(Statement stm : stms) { if(stm.getSubject().equals(subject) && stm.getPredicate().equals(predicate) && stm.getObject().equals(object)) return true; } return false; } public static DatabaseState freshWorkspace(String CORE_DIR, ArrayList fileFilter) throws Exception { SimanticsPlatform.INSTANCE.resetWorkspace(null, fileFilter); return newSimanticsWorkspace(null, CORE_DIR); } public static void freshDatabase() throws Exception { DatabaseState state = freshWorkspace(Configuration.get().coreDir, null); Tests.shutdown(state); } public static DatabaseState existingDatabase() throws Exception { return oldSimanticsWorkspace(null, Configuration.get().coreDir); } private static void initSimanticsStuff() { // Set session context provider. final ISessionContextProvider provider = new SessionContextProvider(null); ISessionContextProviderSource source = new SingleSessionContextProviderSource(provider); Simantics.setSessionContextProviderSource(source); org.simantics.db.layer0.internal.SimanticsInternal.setSessionContextProviderSource(source); } public static DatabaseState newSimanticsWorkspace(TestSettings testSettings, String address) throws Exception { TestHandler testHandler = Tests.getTestHandler(testSettings, address); testHandler.initNew(); initSimanticsStuff(); SessionContext sessionContext = SimanticsPlatform.INSTANCE.startUp(Simantics.getDefaultDatabaseDriver(), null, RecoveryPolicy.FixError, OntologyRecoveryPolicy.Merge, true, new DefaultChoiceUserAgent()); return new DatabaseState(address, sessionContext); } public static DatabaseState oldSimanticsWorkspace(TestSettings testSettings, String address) throws Exception { Tests.getTestHandler(testSettings, address); initSimanticsStuff(); SessionContext sessionContext = SimanticsPlatform.INSTANCE.startUp(Simantics.getDefaultDatabaseDriver(), null, RecoveryPolicy.FixError, OntologyRecoveryPolicy.Merge, false, null); return new DatabaseState(address, sessionContext); } // for (String ontology : testSettings.getOntologies()) { // initOntology(session, ontology); // } // String[] adapters = testSettings.getAdapters(); // if(adapters != null) { // File[] files = new File[adapters.length]; // for(int i=0;i