1 package org.objectweb.celtix.systest.type_test.soap; 2 3 import java.util.List ; 4 5 import javax.xml.namespace.QName ; 6 import javax.xml.soap.SOAPElement ; 7 import javax.xml.soap.SOAPFactory ; 8 import javax.xml.ws.Holder; 9 10 import junit.framework.Test; 11 import junit.framework.TestSuite; 12 13 import org.objectweb.celtix.systest.common.ClientServerSetupBase; 14 import org.objectweb.celtix.systest.type_test.AbstractTypeTestClient4; 15 import org.objectweb.type_test.types2.StructWithAnyArrayLax; 16 import org.objectweb.type_test.types2.StructWithAnyStrict; 17 18 public class SOAPRpcLitClientTypeTest extends AbstractTypeTestClient4 { 19 static final String WSDL_PATH = "/wsdl/type_test/type_test_rpclit_soap.wsdl"; 20 static final QName SERVICE_NAME = 21 new QName ("http://objectweb.org/type_test/rpc", "SOAPService"); 22 static final QName PORT_NAME = 23 new QName ("http://objectweb.org/type_test/rpc", "SOAPPort"); 24 25 public SOAPRpcLitClientTypeTest(String name) { 26 super(name, SERVICE_NAME, PORT_NAME, WSDL_PATH); 27 } 28 29 public static Test suite() throws Exception { 30 TestSuite suite = new TestSuite(SOAPRpcLitClientTypeTest.class); 31 return new ClientServerSetupBase(suite) { 32 public void startServers() throws Exception { 33 boolean ok = launchServer(SOAPRpcLitServerImpl.class); 34 assertTrue("failed to launch server", ok); 35 } 36 }; 37 } 38 39 public void testStructWithAnyStrict() throws Exception { 40 SOAPFactory factory = SOAPFactory.newInstance(); 41 SOAPElement elem = factory.createElement("StringElementQualified", 42 "tns", "http://objectweb.org/type_test/types1"); 43 elem.addNamespaceDeclaration("tns", "http://objectweb.org/type_test/types1"); 44 elem.addTextNode("This is the text of the node"); 45 46 StructWithAnyStrict x = new StructWithAnyStrict(); 47 x.setName("Name x"); 48 x.setAddress("Some Address x"); 49 x.setAny(elem); 50 51 elem = factory.createElement("StringElementQualified", 52 "tns", "http://objectweb.org/type_test/types1"); 53 elem.addNamespaceDeclaration("tns", "http://objectweb.org/type_test/types1"); 54 elem.addTextNode("This is the text of the second node"); 55 56 StructWithAnyStrict yOrig = new StructWithAnyStrict(); 57 yOrig.setName("Name y"); 58 yOrig.setAddress("Some Address y"); 59 yOrig.setAny(elem); 60 61 Holder<StructWithAnyStrict> y = new Holder<StructWithAnyStrict>(yOrig); 62 Holder<StructWithAnyStrict> z = new Holder<StructWithAnyStrict>(); 63 StructWithAnyStrict ret = rpcClient.testStructWithAnyStrict(x, y, z); 64 if (!perfTestOnly) { 65 assertEqualsStructWithAnyStrict(x, y.value); 66 assertEqualsStructWithAnyStrict(yOrig, z.value); 67 assertEqualsStructWithAnyStrict(x, ret); 68 } 69 } 70 71 public void testStructWithAnyStrictComplex() throws Exception { 72 SOAPFactory factory = SOAPFactory.newInstance(); 73 SOAPElement elem = factory.createElement("AnonTypeElementQualified", 74 "tns", "http://objectweb.org/type_test/types1"); 75 elem.addNamespaceDeclaration("tns", "http://objectweb.org/type_test/types1"); 76 SOAPElement floatElem = factory.createElement("varFloat", "tns", 77 "http://objectweb.org/type_test/types1"); 78 floatElem.addTextNode("12.5"); 79 elem.addChildElement(floatElem); 80 SOAPElement intElem = factory.createElement("varInt", "tns", 81 "http://objectweb.org/type_test/types1"); 82 intElem.addTextNode("34"); 83 elem.addChildElement(intElem); 84 SOAPElement stringElem = factory.createElement("varString", "tns", 85 "http://objectweb.org/type_test/types1"); 86 stringElem.addTextNode("test string within any"); 87 elem.addChildElement(stringElem); 88 89 StructWithAnyStrict x = new StructWithAnyStrict(); 90 x.setName("Name x"); 91 x.setAddress("Some Address x"); 92 x.setAny(elem); 93 94 elem = factory.createElement("AnonTypeElementQualified", "tns", 95 "http://objectweb.org/type_test/types1"); 96 elem.addNamespaceDeclaration("tns", "http://objectweb.org/type_test/types1"); 97 floatElem = factory.createElement("varFloat", "tns", 98 "http://objectweb.org/type_test/types1"); 99 floatElem.addTextNode("12.76"); 100 elem.addChildElement(floatElem); 101 intElem = factory.createElement("varInt", "tns", 102 "http://objectweb.org/type_test/types1"); 103 intElem.addTextNode("56"); 104 elem.addChildElement(intElem); 105 stringElem = factory.createElement("varString", "tns", 106 "http://objectweb.org/type_test/types1"); 107 stringElem.addTextNode("test string"); 108 elem.addChildElement(stringElem); 109 110 StructWithAnyStrict yOrig = new StructWithAnyStrict(); 111 yOrig.setName("Name y"); 112 yOrig.setAddress("Some Address y"); 113 yOrig.setAny(elem); 114 115 Holder<StructWithAnyStrict> y = new Holder<StructWithAnyStrict>(yOrig); 116 Holder<StructWithAnyStrict> z = new Holder<StructWithAnyStrict>(); 117 StructWithAnyStrict ret = rpcClient.testStructWithAnyStrict(x, y, z); 118 if (!perfTestOnly) { 119 assertEqualsStructWithAnyStrict(x, y.value); 120 assertEqualsStructWithAnyStrict(yOrig, z.value); 121 assertEqualsStructWithAnyStrict(x, ret); 122 } 123 } 124 125 public void testStructWithAnyArrayLax() throws Exception { 126 SOAPFactory factory = SOAPFactory.newInstance(); 127 SOAPElement elem = factory.createElement("StringElementQualified", 128 "tns", "http://objectweb.org/type_test/types1"); 129 elem.addNamespaceDeclaration("tns", "http://objectweb.org/type_test/types1"); 130 elem.addTextNode("This is the text of the node"); 131 132 StructWithAnyArrayLax x = new StructWithAnyArrayLax(); 133 x.setName("Name x"); 134 x.setAddress("Some Address x"); 135 x.getAny().add(elem); 136 137 elem = factory.createElement("StringElementQualified", "tns", 138 "http://objectweb.org/type_test/types1"); 139 elem.addNamespaceDeclaration("tns", "http://objectweb.org/type_test/types1"); 140 elem.addTextNode("This is the text of the node for the second struct"); 141 142 StructWithAnyArrayLax yOrig = new StructWithAnyArrayLax(); 143 yOrig.setName("Name y"); 144 yOrig.setAddress("Some Other Address y"); 145 yOrig.getAny().add(elem); 146 147 Holder<StructWithAnyArrayLax> y = new Holder<StructWithAnyArrayLax>(yOrig); 148 Holder<StructWithAnyArrayLax> z = new Holder<StructWithAnyArrayLax>(); 149 StructWithAnyArrayLax ret = rpcClient.testStructWithAnyArrayLax(x, y, z); 150 if (!perfTestOnly) { 151 assertEqualsStructWithAnyArrayLax(x, y.value); 152 assertEqualsStructWithAnyArrayLax(yOrig, z.value); 153 assertEqualsStructWithAnyArrayLax(x, ret); 154 } 155 } 156 157 public void testStructWithAnyArrayLaxComplex() throws Exception { 158 SOAPFactory factory = SOAPFactory.newInstance(); 159 SOAPElement elem = factory.createElement("AnonTypeElementQualified", "tns", 160 "http://objectweb.org/type_test/types1"); 161 elem.addNamespaceDeclaration("tns", "http://objectweb.org/type_test/types1"); 162 SOAPElement floatElem = factory.createElement("varFloat", "tns", 163 "http://objectweb.org/type_test/types1"); 164 floatElem.addTextNode("12.76"); 165 elem.addChildElement(floatElem); 166 SOAPElement intElem = factory.createElement("varInt", "tns", 167 "http://objectweb.org/type_test/types1"); 168 intElem.addTextNode("56"); 169 elem.addChildElement(intElem); 170 SOAPElement stringElem = factory.createElement("varString", "tns", 171 "http://objectweb.org/type_test/types1"); 172 stringElem.addTextNode("test string"); 173 elem.addChildElement(stringElem); 174 175 StructWithAnyArrayLax x = new StructWithAnyArrayLax(); 176 x.setName("Name x"); 177 x.setAddress("Some Address x"); 178 x.getAny().add(elem); 179 StructWithAnyArrayLax yOrig = new StructWithAnyArrayLax(); 180 yOrig.setName("Name y"); 181 yOrig.setAddress("Some Other Address y"); 182 yOrig.getAny().add(elem); 183 184 Holder<StructWithAnyArrayLax> y = new Holder<StructWithAnyArrayLax>(yOrig); 185 Holder<StructWithAnyArrayLax> z = new Holder<StructWithAnyArrayLax>(); 186 StructWithAnyArrayLax ret = rpcClient.testStructWithAnyArrayLax(x, y, z); 187 if (!perfTestOnly) { 188 assertEqualsStructWithAnyArrayLax(x, y.value); 189 assertEqualsStructWithAnyArrayLax(yOrig, z.value); 190 assertEqualsStructWithAnyArrayLax(x, ret); 191 } 192 } 193 194 public void assertEqualsStructWithAnyStrict(StructWithAnyStrict a, 195 StructWithAnyStrict b) throws Exception { 196 assertEquals("StructWithAnyStrict names don't match", a.getName(), b.getName()); 197 assertEquals("StructWithAnyStrict addresses don't match", a.getAddress(), b.getAddress()); 198 if (a.getAny() instanceof SOAPElement && b.getAny() instanceof SOAPElement ) { 199 assertEquals((SOAPElement )a.getAny(), (SOAPElement )b.getAny()); 200 } 201 } 202 203 public void assertEqualsStructWithAnyArrayLax(StructWithAnyArrayLax a, 204 StructWithAnyArrayLax b) throws Exception { 205 assertEquals("StructWithAnyArrayLax names don't match", a.getName(), b.getName()); 206 assertEquals("StructWithAnyArrayLax addresses don't match", a.getAddress(), b.getAddress()); 207 208 List <Object > ae = a.getAny(); 209 List <Object > be = b.getAny(); 210 assertEquals("StructWithAnyArrayLax soap element lengths don't match", ae.size(), be.size()); 211 for (int i = 0; i < ae.size(); i++) { 212 if (ae.get(i) instanceof SOAPElement && be.get(i) instanceof SOAPElement ) { 213 assertEquals(ae.get(i), be.get(i)); 214 } 215 } 216 } 217 } 218 | Popular Tags |