1 package org.simantics.db.tests.api.request.external;
3 import junit.framework.Assert;
6 import org.simantics.Simantics;
7 import org.simantics.db.ReadGraph;
8 import org.simantics.db.Session;
9 import org.simantics.db.procedure.Listener;
10 import org.simantics.db.request.ExternalRead;
11 import org.simantics.db.testing.cases.FreshDatabaseTest;
13 public class CachingExternalReads extends FreshDatabaseTest {
15 public static final String RESULT = "Hello World!";
17 static class MyExternalRead implements ExternalRead<String> {
19 int registerCount = 0;
22 public void register(ReadGraph graph, Listener<String> procedure) {
24 System.out.println("register");
26 procedure.execute(RESULT);
30 public void unregistered() {
32 System.out.println("unregistered");
35 public int getRegisterCount() {
41 public void test() throws Exception {
42 Session session = Simantics.getSession();
44 MyExternalRead read = new MyExternalRead();
46 for(int i=0;i<10;++i) {
47 session.syncRequest(read, new Listener<String>() {
49 public void execute(String result) {
51 System.out.println("=> " + result);
55 public void exception(Throwable t) {
60 public boolean isDisposed() {
67 Assert.assertEquals(1, read.registerCount);