X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=tests%2Forg.simantics.db.tests%2Fsrc%2Forg%2Fsimantics%2Fdb%2Ftests%2Fapi%2Frequest%2Fexternal%2FCachingExternalReads.java;fp=tests%2Forg.simantics.db.tests%2Fsrc%2Forg%2Fsimantics%2Fdb%2Ftests%2Fapi%2Frequest%2Fexternal%2FCachingExternalReads.java;h=087dba232da1ed974da312b5cf19fb03d98de728;hb=67fd62f9c742337ec80eef658192db198a0efaac;hp=0000000000000000000000000000000000000000;hpb=cde82ba81327d5515fdca362f7f4c70f5103ae80;p=simantics%2Fplatform.git diff --git a/tests/org.simantics.db.tests/src/org/simantics/db/tests/api/request/external/CachingExternalReads.java b/tests/org.simantics.db.tests/src/org/simantics/db/tests/api/request/external/CachingExternalReads.java new file mode 100644 index 000000000..087dba232 --- /dev/null +++ b/tests/org.simantics.db.tests/src/org/simantics/db/tests/api/request/external/CachingExternalReads.java @@ -0,0 +1,69 @@ +package org.simantics.db.tests.api.request.external; + +import junit.framework.Assert; + +import org.junit.Test; +import org.simantics.Simantics; +import org.simantics.db.ReadGraph; +import org.simantics.db.Session; +import org.simantics.db.procedure.Listener; +import org.simantics.db.request.ExternalRead; +import org.simantics.db.testing.cases.FreshDatabaseTest; + +public class CachingExternalReads extends FreshDatabaseTest { + + public static final String RESULT = "Hello World!"; + + static class MyExternalRead implements ExternalRead { + + int registerCount = 0; + + @Override + public void register(ReadGraph graph, Listener procedure) { + if (DEBUG) + System.out.println("register"); + ++registerCount; + procedure.execute(RESULT); + } + + @Override + public void unregistered() { + if (DEBUG) + System.out.println("unregistered"); + } + + public int getRegisterCount() { + return registerCount; + } + }; + + @Test + public void test() throws Exception { + Session session = Simantics.getSession(); + + MyExternalRead read = new MyExternalRead(); + + for(int i=0;i<10;++i) { + session.syncRequest(read, new Listener() { + @Override + public void execute(String result) { + if (DEBUG) + System.out.println("=> " + result); + } + + @Override + public void exception(Throwable t) { + t.printStackTrace(); + } + + @Override + public boolean isDisposed() { + return false; + } + + }); + } + + Assert.assertEquals(1, read.registerCount); + } +}