blob: fe13cebd1105805dc2f1154ec372e91218304ac8 [file] [log] [blame]
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();
}
}