Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2013-10-25 20:21:27 +0000
committerslewis2013-10-25 20:21:27 +0000
commit5a564a3d8c5392ac456871d62a937870514cc185 (patch)
tree432e89a4c4f45a3ddc93267e7bcff51141857071
parentb2bd8a99cccb6173feb7c1ef734a573854196aea (diff)
downloadorg.eclipse.ecf-5a564a3d8c5392ac456871d62a937870514cc185.tar.gz
org.eclipse.ecf-5a564a3d8c5392ac456871d62a937870514cc185.tar.xz
org.eclipse.ecf-5a564a3d8c5392ac456871d62a937870514cc185.zip
Addition of tests for functionality provided by bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=420290 and for clean up behavior bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=420419
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractRemoteServiceAccessTest.java40
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/TestServiceInterface1Async.java21
2 files changed, 61 insertions, 0 deletions
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractRemoteServiceAccessTest.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractRemoteServiceAccessTest.java
index b4815dd81..4cb99481b 100644
--- a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractRemoteServiceAccessTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/AbstractRemoteServiceAccessTest.java
@@ -10,6 +10,7 @@
package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
import java.util.Properties;
+import java.util.concurrent.Future;
import org.eclipse.ecf.core.util.Trace;
import org.eclipse.ecf.remoteservice.IRemoteCall;
@@ -143,6 +144,23 @@ public abstract class AbstractRemoteServiceAccessTest extends
assertTrue(TestServiceInterface1.TEST_SERVICE_STRING1.equals(result));
}
+ public void testUngetProxy() throws Exception {
+ createServiceTrackerAndRegister();
+
+ // Client - Get service references from service tracker
+ final ServiceReference[] remoteReferences = st.getServiceReferences();
+ assertReferencesValidAndFirstHasCorrectType(remoteReferences, classname);
+
+ // Get proxy/service
+ final TestServiceInterface1 proxy = (TestServiceInterface1) getContext()
+ .getService(remoteReferences[0]);
+ assertNotNull(proxy);
+
+ boolean unget = getContext().ungetService(remoteReferences[0]);
+ assertTrue(unget);
+ }
+
+
public void testCallSyncFromProxy() throws Exception {
createServiceTrackerAndRegister();
@@ -246,4 +264,26 @@ public abstract class AbstractRemoteServiceAccessTest extends
rs.fireAsync(createRemoteCall());
Thread.sleep(REGISTER_WAIT);
}
+
+ public void testAsyncProxyFuture() throws Exception {
+ createServiceTrackerAndRegister();
+
+ // Client - Get service references from service tracker
+ final ServiceReference[] remoteReferences = st.getServiceReferences();
+ assertReferencesValid(remoteReferences);
+
+ Object svc = st.getService();
+ assertNotNull(svc);
+
+ if (!(svc instanceof TestServiceInterface1Async)) fail("remote svc is not instance of TestServiceInterface1Async");
+
+ TestServiceInterface1Async asyncSvc = (TestServiceInterface1Async) svc;
+ // Call method to get Future
+ Future f = asyncSvc.doStuff1Async();
+ // now get result from futureResult
+ final Object result = f.get();
+ Trace.trace(Activator.PLUGIN_ID, "callSync.doStuff1 result=" + result);
+ assertStringResultValid(result, TestServiceInterface1.TEST_SERVICE_STRING1);
+ }
+
}
diff --git a/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/TestServiceInterface1Async.java b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/TestServiceInterface1Async.java
new file mode 100644
index 000000000..5ca642098
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.osgi.services.remoteserviceadmin/src/org/eclipse/ecf/tests/osgi/services/remoteserviceadmin/TestServiceInterface1Async.java
@@ -0,0 +1,21 @@
+/****************************************************************************
+ * Copyright (c) 2013 Composent and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Scott lewis - initial API and implementation
+ *****************************************************************************/
+package org.eclipse.ecf.tests.osgi.services.remoteserviceadmin;
+
+import java.util.concurrent.Future;
+
+import org.eclipse.ecf.remoteservice.IAsyncRemoteServiceProxy;
+
+public interface TestServiceInterface1Async extends IAsyncRemoteServiceProxy {
+
+ Future<String> doStuff1Async();
+
+}

Back to the top