/******************************************************************************* * Copyright (c) 2009 EclipseSource 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: * EclipseSource - initial API and implementation *******************************************************************************/ package org.eclipse.ecf.tests.remoteservice.rest; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.ecf.core.IContainer; import org.eclipse.ecf.core.util.ECFException; import org.eclipse.ecf.remoteservice.IRemoteCallListener; import org.eclipse.ecf.remoteservice.IRemoteService; import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration; import org.eclipse.ecf.remoteservice.client.IRemoteCallable; import org.eclipse.ecf.remoteservice.events.IRemoteCallCompleteEvent; import org.eclipse.ecf.remoteservice.events.IRemoteCallEvent; import org.eclipse.ecf.remoteservice.rest.IRestCall; import org.eclipse.ecf.remoteservice.rest.RestCallFactory; import org.eclipse.ecf.remoteservice.rest.RestCallableFactory; import org.eclipse.equinox.concurrent.future.IFuture; import org.w3c.dom.Document; public class RestRemoteServiceTest extends AbstractRestTestCase { IContainer container; IRemoteServiceRegistration registration; protected void setUp() throws Exception { container = createRestContainer(RestConstants.TEST_TWITTER_TARGET); IRemoteCallable callable = RestCallableFactory.createCallable(RestConstants.TEST_TWITTER_RESOURCEPATH); registration = registerCallable(container, callable, null); } protected void tearDown() throws Exception { registration.unregister(); container.disconnect(); } public void testSyncCall() { // XXX Removed test because it depends upon twitter service, which has changed // IRemoteService restClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registration.getReference()); // try { // Object result = restClientService.callSync(getRestXMLCall()); // assertNotNull(result); // } catch (ECFException e) { // fail("Could not contact the service"); // } } public void testAsynCall() { // XXX Removed test because it depends upon twitter service, which has changed // IRemoteService restClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registration.getReference()); // IFuture future = restClientService.callAsync(getRestXMLCall()); // try { // Object response = future.get(); // assertTrue(response instanceof Document); // } catch (OperationCanceledException e) { // fail(e.getMessage()); // } catch (InterruptedException e) { // fail(e.getMessage()); // } } public void testAsyncCallWithListener() throws Exception { // XXX Removed test because it depends upon twitter service, which has changed // IRemoteService restClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registration.getReference()); // restClientService.callAsync(getRestXMLCall(), new IRemoteCallListener() { // public void handleEvent(IRemoteCallEvent event) { // if (event instanceof IRemoteCallCompleteEvent) { // IRemoteCallCompleteEvent cce = (IRemoteCallCompleteEvent) event; // Object response = cce.getResponse(); // assertTrue(response instanceof Document); // syncNotify(); // } // } // }); // syncWaitForNotify(10000); } private IRestCall getRestXMLCall() { return RestCallFactory.createRestCall(RestConstants.TEST_TWITTER_RESOURCEPATH); } }