📄 getporttestcase.java
字号:
package test.wsdl.getPort;import javax.xml.namespace.QName;import javax.xml.rpc.Service;import javax.xml.rpc.ServiceException;import javax.xml.rpc.Stub;import java.util.Iterator;// This test makes sure that the getPort method works in various service classes.public class GetPortTestCase extends junit.framework.TestCase { private static final QName portAOne = new QName("portAOne"); private static final QName portATwo = new QName("portATwo"); private static final QName portAThree = new QName("portAThree"); private static final QName portBOne = new QName("portBOne"); private static final QName portBTwo = new QName("portBTwo"); private static final QName portBTwoA = new QName("portBTwoA"); private static final QName portCOne = new QName("portCOne"); private static final QName portCTwo = new QName("portCTwo"); private static final QName portCThree = new QName("portCThree"); private static final String ADR_PORTAONE = "http://localhost:8080/axis/services/portAOne"; private static final String ADR_PORTATWO = "http://localhost:8080/axis/services/portATwo"; private static final String ADR_PORTATHREE = "http://localhost:8080/axis/services/portAThree"; public GetPortTestCase(String name) { super(name); } // ctor public void testEmptyService() { Empty empty = new EmptyLocator(); try { empty.getPort(null); fail("empty.getPort(null) should have failed."); } catch (ServiceException se) { assertTrue("Wrong exception! " + se.getLinkedCause(), se.getLinkedCause() == null); } } // testEmptyService/* <service name="serviceA"> <documentation> Service with all ports unique. /-- Test Bug 13407 - embedded comments --/ </documentation> <port name="portAOne" binding="tns:bindingOne"> <soap:address location="http://localhost:8080/axis/services/portAOne"/> </port> <port name="portATwo" binding="tns:bindingTwo"> <soap:address location="http://localhost:8080/axis/services/portATwo"/> </port> <port name="portAThree" binding="tns:bindingThree"> <soap:address location="http://localhost:8080/axis/services/portAThree"/> </port> </service> */ public void testNormalService() { ServiceA service = new ServiceALocator(); try { One one = (One) service.getPort(One.class); Two two = (Two) service.getPort(Two.class); Three three = (Three) service.getPort(Three.class); } catch (Throwable t) { fail("Should not have gotten an exception: " + t); } try { service.getPort(java.util.Vector.class); fail("service.getPort(Vector.class) should have failed."); } catch (ServiceException se) { assertTrue("Wrong exception! " + se.getLinkedCause(), se.getLinkedCause() == null); } // Make sure we get the proper ports try { Stub one = (Stub) service.getPort(portAOne, One.class); Stub two = (Stub) service.getPort(portATwo, Two.class); Stub three = (Stub) service.getPort(portAThree, Three.class); assertTrue("getPort(portAOne) should be of type One, instead it is " + one.getClass().getName(), one instanceof One); assertTrue("getPort(portAOne) should have " + ADR_PORTAONE + ", instead it has " + one._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), ADR_PORTAONE.equals(one._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); assertTrue("getPort(portATwo) should be of type Two, instead it is " + two.getClass().getName(), two instanceof Two); assertTrue("getPort(portATwo) should have address " + ADR_PORTATWO + ", instead it has " + two._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), ADR_PORTATWO.equals(two._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); assertTrue("getPort(portAThree) should be of type Three, instead it is " + three.getClass().getName(), three instanceof Three); assertTrue("getPort(portAThree) should have address " + ADR_PORTATHREE + ", instead it has " + three._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), ADR_PORTATHREE.equals(three._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); } catch (ServiceException se) { fail("unexpected failure: " + se); } } // testNormalService/* <service name="serviceB"> <documentation> Service with two ports (portBTwo, portBTwoA) that share the same portType via the same binding. </documentation> <port name="portBOne" binding="tns:bindingOne"> <soap:address location="http://localhost:8080/axis/services/portOne"/> </port> <port name="portBTwo" binding="tns:bindingTwo"> <soap:address location="http://localhost:8080/axis/services/portBTwo"/> </port> <port name="portBTwoA" binding="tns:bindingTwo"> <soap:address location="http://localhost:8080/axis/services/portBTwoA"/> </port> </service>*/ public void testDoublePortService1() { ServiceB service = new ServiceBLocator(); try { One one = (One) service.getPort(One.class); Two two = (Two) service.getPort(Two.class); } catch (Throwable t) { fail("Should not have gotten an exception: " + t); } try { service.getPort(Three.class); fail("service.getPort(Three.class) should have failed."); } catch (ServiceException se) { assertTrue("Wrong exception! " + se.getLinkedCause(), se.getLinkedCause() == null); } // Make sure we get the proper ports try { Stub one = (Stub) service.getPort(portBOne, One.class); Stub two = (Stub) service.getPort(portBTwo, Two.class); Stub three = (Stub) service.getPort(portBTwoA, Two.class); assertTrue("getPort(portBOne) should be of type One, instead it is " + one.getClass().getName(), one instanceof One); assertTrue("getPort(portBOne) should have address http://localhost:8080/axis/services/portBOne," + " instead it has " + one._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), "http://localhost:8080/axis/services/portBOne".equals(one._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); assertTrue("getPort(portBTwo) should be of type Two, instead it is " + two.getClass().getName(), two instanceof Two); assertTrue("getPort(portBTwo) should have address" + "http://localhost:8080/axis/services/portBTwo," + "instead it has " + two._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY) + ", port is " + two.toString(), "http://localhost:8080/axis/services/portBTwo".equals(two._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); assertTrue("getPort(portBTwoA) should be of type Two, instead it is " + three.getClass().getName(), three instanceof Two); assertTrue("getPort(portBTwoA) should have address " + "http://localhost:8080/axis/services/portBTwoA, " + "instead it has " + three._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), "http://localhost:8080/axis/services/portBTwoA".equals(three._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); } catch (ServiceException se) { fail("unexpected failure: " + se); } } // testDoublePortService1/* * <service name="serviceC"> <documentation> Service with two ports (portCTwo, portCThree) that share the same portType via different bindings. </documentation> <port name="portCOne" binding="tns:bindingOne"> <soap:address location="http://localhost:8080/axis/services/portCOne"/> </port> <port name="portCTwo" binding="tns:bindingTwo"> <soap:address location="http://localhost:8080/axis/services/portCTwo"/> </port> <port name="portCThree" binding="tns:bindingAnotherOne"> <soap:address location="http://localhost:8080/axis/services/portCThree"/> </port> </service>*/ public void testDoublePortService2() { ServiceC service = new ServiceCLocator(); try { One one = (One) service.getPort(One.class); Two two = (Two) service.getPort(Two.class); } catch (Throwable t) { fail("Should not have gotten an exception: " + t); } try { service.getPort(Three.class); fail("service.getPort(Three.class) should have failed."); } catch (ServiceException se) { assertTrue("Wrong exception! " + se.getLinkedCause(), se.getLinkedCause() == null); } // Make sure we get the proper ports try { Stub one = (Stub) service.getPort(portCOne, One.class); Stub two = (Stub) service.getPort(portCTwo, Two.class); Stub three = (Stub) service.getPort(portCThree, Three.class); assertTrue("getPort(portCOne) should be of type One, instead it is " + one.getClass().getName(), one instanceof One); assertTrue("getPort(portCOne) should have address " + "http://localhost:8080/axis/services/portCOne, " + "instead it has " + one._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), "http://localhost:8080/axis/services/portCOne".equals(one._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); assertTrue("getPort(portCTwo) should be of type Two, instead it is " + two.getClass().getName(), two instanceof Two); assertTrue("getPort(portCTwo) should have address " + "http://localhost:8080/axis/services/portCTwo, " + "instead it has " + two._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), "http://localhost:8080/axis/services/portCTwo".equals(two._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); assertTrue("getPort(portCThree) should be of type One, instead it is " + three.getClass().getName(), three instanceof One); assertTrue("getPort(portCThree) should have address " + "http://localhost:8080/axis/services/portCThree," + " instead it has " + three._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY), "http://localhost:8080/axis/services/portCThree".equals(three._getProperty(Stub.ENDPOINT_ADDRESS_PROPERTY))); } catch (ServiceException se) { fail("unexpected failure: " + se); } } // testDoublePortService2 public void testGetPorts() { Service service = null; try { service = new EmptyLocator(); verifyNumberOfPorts("Empty", service.getPorts(), 0); } catch (ServiceException se) { fail("EmptyLocator.getPorts() should not have failed: " + se); } try { service = new ServiceALocator(); verifyNumberOfPorts("ServiceA", service.getPorts(), 3); } catch (ServiceException se) { fail("ServiceA.getPorts() should not have failed: " + se); } try { service = new ServiceBLocator(); verifyNumberOfPorts("ServiceB", service.getPorts(), 3); } catch (ServiceException se) { fail("ServiceB.getPorts() should not have failed: " + se); } try { service = new ServiceCLocator(); verifyNumberOfPorts("ServiceC", service.getPorts(), 3); } catch (ServiceException se) { fail("ServiceC.getPorts() should not have failed: " + se); } } // testGetPorts private void verifyNumberOfPorts(String service, Iterator i, int shouldHave) { int count = 0; for (;i.hasNext();count++,i.next()); assertTrue("Service " + service + " should have " + shouldHave + " ports but instead has " + count, shouldHave == count); } // verifyNumberOfPorts} // class VerifyTestCase
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -