package org.simantics.db.tests.api.support.clusterControl; import org.junit.Test; import org.simantics.db.AsyncReadGraph; import org.simantics.db.ReadGraph; import org.simantics.db.Session; import org.simantics.db.common.procedure.adapter.AsyncProcedureAdapter; import org.simantics.db.common.procedure.adapter.ListenerAdapter; import org.simantics.db.exception.DatabaseException; import org.simantics.db.procedure.AsyncProcedure; import org.simantics.db.request.AsyncRead; import org.simantics.db.request.Read; import org.simantics.db.service.ClusterControl; import org.simantics.db.testing.base.ExistingDatabaseTest; import org.simantics.layer0.Layer0; public class CachedDirectPredicatesWithNoCluster extends ExistingDatabaseTest { @Test public void test() throws DatabaseException { Session session = getSession(); final Layer0 L0 = Layer0.getInstance(session); session.syncRequest(new Read() { @Override public Boolean perform(ReadGraph graph) throws DatabaseException { Layer0 L0 = Layer0.getInstance(graph); return graph.hasStatement(L0.Entity); } }, new ListenerAdapter() { @Override public boolean isDisposed() { return false; } }); ClusterControl support = getSession().getService(ClusterControl.class); support.collectClusters(Integer.MAX_VALUE); session.syncRequest(new AsyncRead() { @Override public void perform(AsyncReadGraph graph, AsyncProcedure procedure) { graph.forHasStatement(L0.Entity, procedure); } @Override public int threadHash() { return hashCode(); } @Override public int getFlags() { return 0; } }, new AsyncProcedureAdapter() { @Override public void execute(AsyncReadGraph graph, Boolean result) { if (DEBUG) System.err.println("exec: " + result); } @Override public void exception(AsyncReadGraph graph, Throwable t) { if (DEBUG) System.err.println("exception: " + t); } }); } }