package org.simantics.db.tests.api.support.managementSupport; import java.util.Collection; import org.junit.Test; import org.simantics.db.ChangeSet; import org.simantics.db.ReadGraph; import org.simantics.db.WriteGraph; import org.simantics.db.common.request.ReadRequest; import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; import org.simantics.db.service.ManagementSupport; import org.simantics.db.testing.base.ExistingDatabaseTest; public class FetchChangeSetsTest extends ExistingDatabaseTest { // static final boolean DEBUG = true; static final boolean VERBOSE = false; @Test public void test() throws DatabaseException { final ManagementSupport ms = getSession().getService(ManagementSupport.class); final long startId = 1; getSession().syncRequest(new WriteRequest() { @Override public void perform(WriteGraph g) throws DatabaseException { g.newResource(); } }); final long endId = ms.getHeadRevisionId(); assertTrue(endId > 0); getSession().syncRequest(new ReadRequest() { @Override public void run(ReadGraph g) throws DatabaseException { long id = ms.getHeadRevisionId(); assertTrue(endId == id); Collection css = ms.fetchChangeSets(g, endId, endId); int size = 1; assertEquals("Failed to get change sets.", size, css.size()); if (DEBUG) printDebug(css, endId); } }); getSession().syncRequest(new ReadRequest() { @Override public void run(ReadGraph g) throws DatabaseException { long id = ms.getHeadRevisionId(); assertTrue(endId == id); Collection css = ms.fetchChangeSets(g, startId, endId); // Can't be sure that old change sets are preserved. assertTrue("Failed to get change sets.", css.size() >= 1); if (DEBUG) printDebug(css, startId); } }); } static void printDebug(Collection css, long startId) { if (!DEBUG) return; long id = startId; for (ChangeSet cs: css) { System.out.println("cs=" + id); if (VERBOSE) System.out.println(cs.toString()); ++id; } } }