Package org.eclipse.ecf.tests.remoteservice.rest

Source Code of org.eclipse.ecf.tests.remoteservice.rest.RestPutServiceTest

package org.eclipse.ecf.tests.remoteservice.rest;

import java.io.NotSerializableException;
import java.util.Map;

import org.eclipse.ecf.core.IContainer;
import org.eclipse.ecf.core.security.ConnectContextFactory;
import org.eclipse.ecf.remoteservice.IRemoteCall;
import org.eclipse.ecf.remoteservice.IRemoteService;
import org.eclipse.ecf.remoteservice.IRemoteServiceRegistration;
import org.eclipse.ecf.remoteservice.client.IRemoteCallParameter;
import org.eclipse.ecf.remoteservice.client.IRemoteCallable;
import org.eclipse.ecf.remoteservice.client.IRemoteResponseDeserializer;
import org.eclipse.ecf.remoteservice.client.IRemoteServiceClientContainerAdapter;
import org.eclipse.ecf.remoteservice.client.RemoteCallParameter;
import org.eclipse.ecf.remoteservice.rest.RestCallFactory;
import org.eclipse.ecf.remoteservice.rest.RestCallableFactory;
import org.eclipse.ecf.remoteservice.rest.client.HttpPutRequestType;

@SuppressWarnings("unused")
public class RestPutServiceTest extends AbstractRestTestCase {

  private String username = System.getProperty("rest.test.username","p126371rw");
  private String password = System.getProperty("rest.test.password","demo");
  private String uri = System.getProperty("rest.test.uri","http://phprestsql.sourceforge.net");
  private String resourcePath = System.getProperty("rest.test.resourcePath","/tutorial/user/7");
  private String method = System.getProperty("rest.test.method","putUser");
 
  private IContainer container;
  private IRemoteServiceRegistration registration;
 
  @Override
  protected void setUp() throws Exception {
    super.setUp();
    // Create container for service URI
    container = createRestContainer(uri);
    // Get adapter and set authentication info
    IRemoteServiceClientContainerAdapter adapter = (IRemoteServiceClientContainerAdapter) getRemoteServiceClientContainerAdapter(container);
   
    // Setup authentication
    adapter.setConnectContextForAuthentication(ConnectContextFactory.createUsernamePasswordConnectContext(username, password));
    // Setup response deserializer to do absolutely nothing (return null).  Note this is specific to this service.
    adapter.setResponseDeserializer(new IRemoteResponseDeserializer() {
      public Object deserializeResponse(String endpoint,
          IRemoteCall call, IRemoteCallable callable,
          Map responseHeaders, byte[] responseBody)
          throws NotSerializableException {
        return null;
      }});

    // Create callable and register
    IRemoteCallable callable = RestCallableFactory.createCallable(method,resourcePath,
        new IRemoteCallParameter[] { new RemoteCallParameter("body")} ,
        new HttpPutRequestType(HttpPutRequestType.STRING_REQUEST_ENTITY,"application/xml",-1,"UTF-8"));
    // register callable
    registration = adapter.registerCallables(new IRemoteCallable[] { callable } , null);
   
  }
 
 
  public void testPutCallSync() throws Exception {
//    IRemoteService restClientService = getRemoteServiceClientContainerAdapter(container).getRemoteService(registration.getReference());
//    System.out.println("put uri="+uri+resourcePath);
//    String body = createBody();
//    System.out.println("body="+body);
//    System.out.print("making remote method call="+method+"...");
//    Object result = restClientService.callSync(RestCallFactory.createRestCall(method, new String[] { body }));
//    System.out.println("received result="+result);
  }
 
 
  private String createBody() {
    return "firstname=Scott\nsurname=Example\nemail=slewis@example.org\ncompany_uid=1";
  }
 
  @Override
  protected void tearDown() throws Exception {
    super.tearDown();
    registration.unregister();
    container.disconnect();
  }
}
TOP

Related Classes of org.eclipse.ecf.tests.remoteservice.rest.RestPutServiceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.