--- /dev/null
+package org.simantics.db.tests.client;
+
+import org.junit.Test;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.testing.base.TestCommonNoVirtual;
+import org.simantics.db.testing.common.Client;
+import org.simantics.db.testing.common.ClientFactory;
+import org.simantics.db.tests.common.ClientOperations;
+import org.simantics.db.tests.common.Configuration;
+
+public class RefreshTest3 extends TestCommonNoVirtual {
+ private static final int COUNT = Configuration.get().refreshLoopCount;
+
+ @Test
+ public void testRefresh3() throws DatabaseException {
+ if (noVirtual())
+ return;
+ for (int i=0; i<COUNT; ++i) {
+ refreshTestRemove();
+ }
+ }
+ void refreshTestRemove() throws DatabaseException {
+// ServerAddress serverAddress = getSessionContext().getAddress();
+ Client client1 = ClientFactory.create(getRandomString());
+ Client client2 = ClientFactory.create(getRandomString());
+ try {
+ int size = 3;
+ String name1 = ClientOperations.createOrderedSet(client1, size);
+ ClientOperations.validateOrderedSet(client1, name1, size);
+ ClientOperations.validateOrderedSet(client2, name1, size);
+
+ ClientOperations.removeElement(client1, name1,--size);
+ ClientOperations.validateOrderedSet(client1, name1, size);
+ ClientOperations.validateOrderedSet(client2, name1, size);
+
+ ClientOperations.removeElement(client2, name1,--size);
+ ClientOperations.validateOrderedSet(client2, name1, size);
+ ClientOperations.validateOrderedSet(client1, name1, size);
+
+ ClientOperations.removeElement(client1, name1,--size);
+ ClientOperations.validateOrderedSet(client1, name1, size);
+ ClientOperations.validateOrderedSet(client2, name1, size);
+
+ size = 3;
+ String name2 = ClientOperations.createOrderedSet(client2, size);
+ ClientOperations.validateOrderedSet(client2, name2, size);
+ ClientOperations.validateOrderedSet(client1, name2, size);
+
+ ClientOperations.removeElement(client1, name2,--size);
+ ClientOperations.validateOrderedSet(client1, name2, size);
+ ClientOperations.validateOrderedSet(client2, name2, size);
+
+ ClientOperations.removeElement(client2, name2,--size);
+ ClientOperations.validateOrderedSet(client2, name2, size);
+ ClientOperations.validateOrderedSet(client1, name2, size);
+
+ ClientOperations.removeElement(client1, name2,--size);
+ ClientOperations.validateOrderedSet(client1, name2, size);
+ ClientOperations.validateOrderedSet(client2, name2, size);
+
+ } finally {
+ if (null != client1)
+ client1.close();
+ if (null != client2)
+ client2.close();
+ }
+ }
+}