001: package org.objectweb.celtix.bus.ws.rm;
002:
003: import java.net.URL;
004: import java.util.List;
005: import java.util.concurrent.Future;
006:
007: import javax.jws.WebService;
008: import javax.xml.namespace.QName;
009: import javax.xml.ws.AsyncHandler;
010: import javax.xml.ws.BindingProvider;
011: import javax.xml.ws.Endpoint;
012: import javax.xml.ws.Response;
013: import javax.xml.ws.handler.Handler;
014:
015: import junit.framework.TestCase;
016:
017: import org.objectweb.celtix.Bus;
018: import org.objectweb.celtix.bindings.AbstractBindingImpl;
019: import org.objectweb.celtix.greeter_control.Greeter;
020: import org.objectweb.celtix.greeter_control.GreeterService;
021: import org.objectweb.celtix.greeter_control.PingMeFault;
022: import org.objectweb.celtix.greeter_control.types.GreetMeResponse;
023: import org.objectweb.celtix.greeter_control.types.PingMeResponse;
024: import org.objectweb.celtix.greeter_control.types.SayHiResponse;
025:
026: public class RMHandlerTest extends TestCase {
027: private static final String APP_NAMESPACE = "http://celtix.objectweb.org/greeter_control";
028: private static final String CFG_FILE_PROPERTY = "celtix.config.file";
029: private static final QName SERVICE_NAME = new QName(APP_NAMESPACE,
030: "GreeterService");
031: private static final QName PORT_NAME = new QName(APP_NAMESPACE,
032: "GreeterPort");
033:
034: private String celtixCfgFile;
035: private Bus bus;
036:
037: public void setUp() throws Exception {
038:
039: celtixCfgFile = System.getProperty(CFG_FILE_PROPERTY);
040: URL url = RMHandlerTest.class
041: .getResource("resources/RMHandlerTest.xml");
042: assert null != url;
043: String configFileName = url.toString();
044: System.setProperty(CFG_FILE_PROPERTY, configFileName);
045: bus = Bus.init();
046: }
047:
048: public void tearDown() throws Exception {
049: bus.shutdown(true);
050: if (null != celtixCfgFile) {
051: System.setProperty(CFG_FILE_PROPERTY, celtixCfgFile);
052: } else {
053: System.clearProperty(CFG_FILE_PROPERTY);
054: }
055: }
056:
057: public void testInitialisationClientSide() throws Exception {
058:
059: URL wsdl = getClass().getResource("/wsdl/greeter_control.wsdl");
060: GreeterService greeterService = new GreeterService(wsdl,
061: SERVICE_NAME);
062: Greeter greeter = greeterService.getPort(PORT_NAME,
063: Greeter.class);
064:
065: BindingProvider provider = (BindingProvider) greeter;
066: AbstractBindingImpl abi = (AbstractBindingImpl) provider
067: .getBinding();
068: List<Handler> handlerChain = abi.getPreLogicalSystemHandlers();
069:
070: assertEquals(1, handlerChain.size());
071: RMHandler handler = (RMHandler) handlerChain.get(0);
072:
073: assertEquals(bus, handler.getBus());
074: assertNotNull(handler.getClientBinding());
075: assertNull(handler.getServerBinding());
076: assertNotNull(handler.getBinding());
077:
078: assertNotNull(handler.getClientTransport());
079: assertNull(handler.getServerTransport());
080: assertNotNull(handler.getTransport());
081:
082: }
083:
084: public void testInitialisationServerSide() {
085:
086: String address = "http://localhost:9000/SoapContext/GreeterPort";
087: Endpoint ep = Endpoint.publish(address, new GreeterImpl());
088:
089: AbstractBindingImpl abi = (AbstractBindingImpl) ep.getBinding();
090: List<Handler> handlerChain = abi.getPreLogicalSystemHandlers();
091:
092: assertEquals(1, handlerChain.size());
093: RMHandler handler = (RMHandler) handlerChain.get(0);
094:
095: assertEquals(bus, handler.getBus());
096: assertNull(handler.getClientBinding());
097: assertNotNull(handler.getServerBinding());
098: assertNotNull(handler.getBinding());
099:
100: assertNull(handler.getClientTransport());
101: assertNotNull(handler.getServerTransport());
102: assertNotNull(handler.getTransport());
103: }
104:
105: @WebService(serviceName="GreeterService",portName="GreeterPort",endpointInterface="org.objectweb.celtix.greeter_control.Greeter",targetNamespace="http://celtix.objectweb.org/greeter_control")
106: class GreeterImpl implements Greeter {
107:
108: public String greetMe(String requestType) {
109: return null;
110: }
111:
112: public Future<?> greetMeAsync(String requestType,
113: AsyncHandler<GreetMeResponse> asyncHandler) {
114: return null;
115: }
116:
117: public Response<GreetMeResponse> greetMeAsync(String requestType) {
118: return null;
119: }
120:
121: public void greetMeOneWay(String requestType) {
122: }
123:
124: public void pingMe() throws PingMeFault {
125: }
126:
127: public Response<PingMeResponse> pingMeAsync() {
128: return null;
129: }
130:
131: public Future<?> pingMeAsync(
132: AsyncHandler<PingMeResponse> asyncHandler) {
133: return null;
134: }
135:
136: public String sayHi() {
137: return null;
138: }
139:
140: public Response<SayHiResponse> sayHiAsync() {
141: return null;
142: }
143:
144: public Future<?> sayHiAsync(
145: AsyncHandler<SayHiResponse> asyncHandler) {
146: return null;
147: }
148: }
149: }
|