1 package org.objectweb.celtix.bus.bindings; 2 3 import java.util.Properties ; 4 import java.util.concurrent.Executor ; 5 6 import javax.xml.ws.Binding; 7 import javax.xml.ws.Endpoint; 8 import javax.xml.ws.spi.Provider; 9 10 import junit.framework.TestCase; 11 12 import org.objectweb.celtix.Bus; 13 import org.objectweb.celtix.bindings.BindingManager; 14 import org.objectweb.celtix.bindings.ServerBinding; 15 import org.objectweb.celtix.bus.jaxws.EndpointImpl; 16 import org.objectweb.celtix.transports.ServerTransport; 17 import org.objectweb.celtix.ws.addressing.EndpointReferenceType; 18 import org.objectweb.celtix.wsdl.EndpointReferenceUtils; 19 import org.objectweb.hello_world_soap_http.DerivedGreeterImpl; 20 21 public class ServerBindingTest extends TestCase { 22 23 private String epfClassName; 24 private Bus bus; 25 private EndpointImpl ei; 26 private DerivedGreeterImpl implementor; 27 28 public void setUp() throws Exception { 29 epfClassName = System.getProperty(Provider.JAXWSPROVIDER_PROPERTY); 30 System.setProperty(Provider.JAXWSPROVIDER_PROPERTY, 31 "org.objectweb.celtix.bus.jaxws.spi.ProviderImpl"); 32 bus = Bus.init(); 33 BindingManager bm = bus.getBindingManager(); 34 bm.registerBinding("http://celtix.objectweb.org/bindings/test", new TestBindingFactory(bus)); 35 implementor = new DerivedGreeterImpl(); 36 Endpoint ep = Endpoint.create(TestBinding.TEST_BINDING, implementor); 37 ei = (EndpointImpl)ep; 38 } 39 40 public void tearDown() throws Exception { 41 bus.shutdown(true); 42 if (null == epfClassName) { 43 Properties properties = System.getProperties(); 44 properties.remove(Provider.JAXWSPROVIDER_PROPERTY); 45 System.setProperties(properties); 46 } else { 47 System.setProperty(Provider.JAXWSPROVIDER_PROPERTY, epfClassName); 48 } 49 } 50 51 public void testConstruction() { 52 ServerBinding sb = ei.getServerBinding(); 53 assertNotNull(sb); 54 assertTrue(sb instanceof TestServerBinding); 55 Binding b = sb.getBinding(); 56 assertNotNull(b); 57 TestServerBinding tsb = (TestServerBinding)sb; 58 ServerTransport st = tsb.getTransport(); 59 assertNull(st); 60 EndpointReferenceType ref = ei.getEndpointReferenceType(); 61 assertNull(ref.getAddress()); 62 63 } 64 65 public void testActivate() throws Exception { 66 ServerBinding sb = ei.getServerBinding(); 67 try { 68 sb.activate(); 69 } catch (NullPointerException ex) { 70 } 72 EndpointReferenceType ref = ei.getEndpointReferenceType(); 73 EndpointReferenceUtils.setAddress(ref, "test://localhost:7777/test"); 74 sb.activate(); 75 TestServerBinding tsb = (TestServerBinding)sb; 76 ServerTransport st = tsb.getTransport(); 77 assertNotNull(st); 78 79 } 80 81 public void testDispatch() throws Exception { 82 ServerBinding sb = ei.getServerBinding(); 83 EndpointReferenceType ref = ei.getEndpointReferenceType(); 84 EndpointReferenceUtils.setAddress(ref, "test://localhost:7777/test"); 85 sb.activate(); 86 TestServerBinding tsb = (TestServerBinding)sb; 87 ei.setExecutor(new Executor () { 88 public void execute(Runnable command) { 89 command.run(); 90 } 91 }); 92 93 tsb.triggerTransport(); 94 assertEquals(0, implementor.getInvocationCount("sayHi")); 95 assertEquals(0, implementor.getInvocationCount("overloadedSayHi")); 96 assertEquals(0, implementor.getInvocationCount("greetMe")); 97 98 tsb.currentOperation = "sayHi"; 100 tsb.triggerTransport(); 101 assertEquals(1, implementor.getInvocationCount("sayHi")); 102 assertEquals(0, implementor.getInvocationCount("overloadedSayHi")); 103 assertEquals(0, implementor.getInvocationCount("greetMe")); 104 105 tsb.currentOperation = "greetMe"; 107 tsb.triggerTransport(); 108 assertEquals(1, implementor.getInvocationCount("sayHi")); 109 assertEquals(0, implementor.getInvocationCount("overloadedSayHi")); 110 assertEquals(1, implementor.getInvocationCount("greetMe")); 111 } 112 } 113 | Popular Tags |