diff options
author | slewis | 2013-10-25 20:21:27 +0000 |
---|---|---|
committer | slewis | 2013-10-25 20:21:27 +0000 |
commit | 5a564a3d8c5392ac456871d62a937870514cc185 (patch) | |
tree | 432e89a4c4f45a3ddc93267e7bcff51141857071 | |
parent | b2bd8a99cccb6173feb7c1ef734a573854196aea (diff) | |
download | org.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
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(); + +} |