/*
* Copyright: Almende B.V. (2014), Rotterdam, The Netherlands
* License: The Apache Software License, Version 2.0
*/
package com.almende.eve.test;
import java.util.logging.Logger;
import junit.framework.TestCase;
import org.junit.Test;
import com.almende.eve.agent.AgentConfig;
import com.almende.eve.agent.AgentProxyFactory;
import com.almende.eve.agent.ExampleAgent;
import com.almende.eve.agent.ExampleAgentInterface;
import com.almende.eve.transport.http.HttpTransportConfig;
import com.almende.util.URIUtil;
import com.almende.util.jackson.JOM;
import com.fasterxml.jackson.databind.node.ObjectNode;
/**
* The Class TestRpc.
*/
public class TestProxy extends TestCase {
private static final Logger LOG = Logger.getLogger(TestProxy.class
.getName());
/**
* Test me.
*/
@Test
public void testProxy() {
final HttpTransportConfig transportConfig = HttpTransportConfig
.create();
transportConfig.setServletUrl("http://localhost:8081/agents/");
transportConfig.setServletLauncher("JettyLauncher");
final ObjectNode jettyParms = JOM.createObjectNode();
jettyParms.put("port", 8081);
transportConfig.set("jetty", jettyParms);
final AgentConfig config = AgentConfig.create("example");
config.addTransport(transportConfig);
final ExampleAgent agent = new ExampleAgent();
agent.setConfig(config);
final ExampleAgentInterface proxy = AgentProxyFactory.genProxy(agent,
URIUtil.create("http://localhost:8081/agents/example"),
ExampleAgentInterface.class);
LOG.warning("Proxy got reply:" + proxy.helloWorld("Hi there"));
assertEquals(proxy.helloWorld("Hi there"), "You said:Hi there");
proxy.doSomething();
assertNull(proxy.doMore());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}