1 19 20 package org.netbeans.modules.websvc.api.jaxws.wsdlmodel; 21 22 import java.io.File ; 23 import java.net.URL ; 24 import java.util.ArrayList ; 25 import java.util.Iterator ; 26 import java.util.List ; 27 import org.netbeans.junit.NbTestCase; 28 29 33 public class WSDLBindingTest extends NbTestCase { 34 35 private List <String > serviceNames, serviceJavaNames, portNames, portJavaNames, portGetters, opNames, opJavaNames, opTypes, paramNames, paramTypes; 36 private static final String BINDING_1="custom-client.xml"; 37 private static final String BINDING_11="custom-client1.xml"; 38 private static final String BINDING_2="custom-schema.xml"; 39 private static final String PACKAGE_NAME="netbeans.org.ws"; 40 41 42 private Object expectedValue, realValue; 43 private int numberOfEvents; 44 45 private static final String [][] SERVICE_NAMES={{"AddNumbersService"},{"AddNumbersService"}}; 46 private static final String [][] SERVICE_JAVA_NAMES={{"external_customize.client.MathUtilService"},{PACKAGE_NAME+".MathUtilService"}}; 47 private static final String [][] PORT_NAMES={{"AddNumbersImplPort"},{"AddNumbersImplPort"}}; 48 private static final String [][] PORT_JAVA_NAMES={{"external_customize.client.MathUtil"},{PACKAGE_NAME+".MathUtil"}}; 49 private static final String [][] PORT_GETTERS={{"getMathUtil"},{"getMathUtil"}}; 50 private static final String [][] OP_NAMES={{"addNumbers"},{"addNumbers"}}; 51 private static final String [][] OP_JAVA_NAMES={{"add"},{"add"}}; 52 private static final String [][] OP_TYPES={{"external_customize.schema.AddNumbersResponse"},{"int"}}; 53 private static final String [][] PARAM_NAMES={{"num1"},{"arg0","arg1"}}; 54 private static final String [][] PARAM_TYPES={{"external_customize.schema.AddNumbers"},{"int","int"}}; 55 56 public WSDLBindingTest(String testName) { 57 super(testName); 58 } 59 60 protected void setUp() throws Exception { 61 } 62 63 protected void tearDown() throws Exception { 64 } 65 66 69 public void testExternalBindings() throws java.net.MalformedURLException { 70 System.out.println("Test 1 : External Bindings"); 71 initResults(); 72 final WsdlModeler wsdlModeler = WsdlModelerFactory.getDefault().getWsdlModeler(getUrl("AddNumbers2.wsdl")); 73 assertNotNull("WsdlModelerFactory failed to create object", wsdlModeler); 74 URL binding1 = getUrl(BINDING_1); 75 URL binding2 = getUrl(BINDING_2); 76 wsdlModeler.setJAXBBindings(new URL []{binding1,binding2}); 77 wsdlModeler.generateWsdlModel(new WsdlModelListener() { 79 public void modelCreated(WsdlModel model) { 80 compareWsdl(model,0); 81 } 82 }); 83 wsdlModeler.task.waitFinished(); 84 Thread.currentThread().yield(); 85 URL binding11 = getUrl(BINDING_11); 86 wsdlModeler.setJAXBBindings(new URL []{binding11}); 87 wsdlModeler.setPackageName(PACKAGE_NAME); 88 wsdlModeler.generateWsdlModel(new WsdlModelListener() { 89 public void modelCreated(WsdlModel model) { 90 compareWsdl(model,1); 91 } 92 },true); 93 wsdlModeler.task.waitFinished(); 94 System.out.println("Test 1 : FINISHED "+expectedValue+":"+realValue); 95 if (expectedValue!=null) assertEquals (expectedValue,realValue); 96 assertEquals(2,numberOfEvents); 97 } 98 99 private void compareWsdl(WsdlModel model, int testNumber) { 100 if (expectedValue!=null || realValue!=null) return; 101 initLists(); 102 List <WsdlService> services = model.getServices(); 103 for (Iterator <WsdlService> it = services.iterator(); it.hasNext();) { 104 WsdlService s = it.next(); 105 serviceNames.add(s.getName()); 106 serviceJavaNames.add(s.getJavaName()); 107 List <WsdlPort> ports = s.getPorts(); 108 for (Iterator <WsdlPort> it1 = ports.iterator(); it1.hasNext();) { 109 WsdlPort port = it1.next(); 110 portNames.add(port.getName()); 111 portJavaNames.add(port.getJavaName()); 112 portGetters.add(port.getPortGetter()); 113 List <WsdlOperation> operations = port.getOperations(); 114 for (Iterator <WsdlOperation> it2 = operations.iterator(); it2.hasNext();) { 115 WsdlOperation op = it2.next(); 116 opNames.add(op.getName()); 117 opJavaNames.add(op.getJavaName()); 118 opTypes.add(op.getReturnTypeName()); 119 List <WsdlParameter> parameters = op.getParameters(); 120 for (Iterator <WsdlParameter> it3 = parameters.iterator(); it3.hasNext();) { 121 WsdlParameter param = it3.next(); 122 paramNames.add(param.getName()); 123 paramTypes.add(param.getTypeName()); 124 } 125 } 126 } 127 } 128 compareResults(testNumber); 129 numberOfEvents++; 130 } 131 132 private URL getUrl(String file) throws java.net.MalformedURLException { 133 return new File (getDataDir(),file).toURL(); 134 } 135 136 private File getFile(String file) { 137 return new File (getDataDir(),file); 138 } 139 140 private void compareResults(int testNumber) { 141 142 if (!comp(SERVICE_NAMES[testNumber].length,serviceNames.size())) return; 143 if (!comp(SERVICE_JAVA_NAMES[testNumber].length,serviceJavaNames.size())) return; 144 145 if (!comp(PORT_NAMES[testNumber].length,portNames.size())) return; 146 if (!comp(PORT_JAVA_NAMES[testNumber].length,portJavaNames.size())) return; 147 if (!comp(PORT_GETTERS[testNumber].length,portGetters.size())) return; 148 149 if (!comp(OP_NAMES[testNumber].length,opNames.size())) return; 150 if (!comp(OP_JAVA_NAMES[testNumber].length,opJavaNames.size())) return; 151 if (!comp(OP_TYPES[testNumber].length,opTypes.size())) return; 152 153 if (!comp(PARAM_NAMES[testNumber].length,paramNames.size())) return; 154 if (!comp(PARAM_TYPES[testNumber].length,paramTypes.size())) return; 155 156 for (int i=0;i<SERVICE_NAMES[testNumber].length;i++) { 157 if (!comp(SERVICE_NAMES[testNumber][i],serviceNames.get(i))) return; 158 } 159 for (int i=0;i<SERVICE_JAVA_NAMES[testNumber].length;i++) { 160 if (!comp(SERVICE_JAVA_NAMES[testNumber][i],serviceJavaNames.get(i))) return; 161 } 162 163 for (int i=0;i<PORT_NAMES[testNumber].length;i++) { 164 if (!comp(PORT_NAMES[testNumber][i],portNames.get(i))) return; 165 } 166 for (int i=0;i<PORT_JAVA_NAMES[testNumber].length;i++) { 167 if (!comp(PORT_JAVA_NAMES[testNumber][i],portJavaNames.get(i))) return; 168 } 169 for (int i=0;i<PORT_GETTERS[testNumber].length;i++) { 170 if (!comp(PORT_GETTERS[testNumber][i],portGetters.get(i))) return; 171 } 172 173 for (int i=0;i<OP_NAMES[testNumber].length;i++) { 174 if (!comp(OP_NAMES[testNumber][i],opNames.get(i))) return; 175 } 176 for (int i=0;i<OP_JAVA_NAMES[testNumber].length;i++) { 177 if (!comp(OP_JAVA_NAMES[testNumber][i],opJavaNames.get(i))) return; 178 } 179 for (int i=0;i<OP_TYPES[testNumber].length;i++) { 180 if (!comp(OP_TYPES[testNumber][i],opTypes.get(i))) return; 181 } 182 183 for (int i=0;i<PARAM_NAMES[testNumber].length;i++) { 184 if (!comp(PARAM_NAMES[testNumber][i],paramNames.get(i))) return; 185 } 186 for (int i=0;i<PARAM_TYPES[testNumber].length;i++) { 187 if (!comp(PARAM_TYPES[testNumber][i],paramTypes.get(i))) return; 188 } 189 } 190 191 private void initLists() { 192 serviceNames = new ArrayList <String >(); 193 serviceJavaNames = new ArrayList <String >(); 194 portNames = new ArrayList <String >(); 195 portJavaNames = new ArrayList <String >(); 196 portGetters = new ArrayList <String >(); 197 opNames = new ArrayList <String >(); 198 opJavaNames = new ArrayList <String >(); 199 opTypes = new ArrayList <String >(); 200 paramNames = new ArrayList <String >(); 201 paramTypes = new ArrayList <String >(); 202 } 203 204 private void initResults() { 205 expectedValue=null;realValue=null; 206 numberOfEvents=0; 207 } 208 209 private boolean comp(int x, int y) { 210 if (x!=y) { 211 expectedValue = new Integer (x); 212 realValue = new Integer (y); 213 Thread.dumpStack(); 214 return false; 215 } else { 216 return true; 217 } 218 } 219 220 private boolean comp(Object x, Object y) { 221 if (!x.equals(y)) { 222 expectedValue = x; 223 realValue = y; 224 return false; 225 } else { 226 return true; 227 } 228 } 229 } 230 | Popular Tags |