1 package org.objectweb.celtix.tools.processors.wsdl2; 2 3 import java.io.File ; 4 import java.lang.reflect.Method ; 5 import java.net.URLClassLoader ; 6 7 import javax.jws.WebParam; 8 import javax.jws.WebResult; 9 import javax.jws.soap.SOAPBinding; 10 import javax.xml.ws.Holder; 11 12 import org.objectweb.celtix.tools.WSDLToJava; 13 import org.objectweb.celtix.tools.processors.ProcessorTestBase; 14 import org.objectweb.celtix.tools.utils.AnnotationUtil; 15 16 public class WSDLToJavaExSoapHeaderTest 17 extends ProcessorTestBase { 18 19 private URLClassLoader classLoader; 20 21 public void setUp() throws Exception { 22 super.setUp(); 23 File classFile = new java.io.File (output.getCanonicalPath()); 24 System.setProperty("java.class.path", getClassPath() + classFile.getCanonicalPath() 25 + File.separatorChar); 26 classLoader = AnnotationUtil.getClassLoader(Thread.currentThread().getContextClassLoader()); 27 } 28 29 public void testSoapBindingDiffMessage() throws Exception { 30 String [] args = new String [] {"-d", output.getCanonicalPath(), 31 "-exsh", "true", "-compile", 32 getLocation("/wsdl/soapheader_test.wsdl")}; 33 WSDLToJava.main(args); 34 35 Class clz = classLoader.loadClass("org.objectweb.header_test.TestHeader"); 36 Method method = clz.getMethod("testHeader4", new Class [] {java.lang.String .class, 37 Holder.class}); 38 if (method == null) { 39 fail("Missing method testHeader4 of TestHeader class!"); 40 } 41 WebParam webParamAnno = AnnotationUtil.getWebParam(method, "testHeaderMessage"); 42 if (webParamAnno == null) { 43 fail("Missing 'inoutHeader' WebParam Annotation of method testHeader4!"); 44 } 45 assertEquals("INOUT", webParamAnno.mode().name()); 46 assertEquals(true, webParamAnno.header()); 47 assertEquals("inoutHeader", webParamAnno.partName()); 48 } 49 50 public void testSoapHeaderBinding() throws Exception { 51 String [] args = new String [] {"-d", output.getCanonicalPath(), "-compile", 52 getLocation("/wsdl/soapheader_test.wsdl")}; 53 WSDLToJava.main(args); 54 55 Class clz = classLoader.loadClass("org.objectweb.header_test.TestHeader"); 56 Class paramClz = classLoader.loadClass("org.objectweb.header_test.types.TestHeader5"); 57 assertEquals(5, clz.getMethods().length); 58 59 Method method = clz.getMethod("testHeader5", new Class [] {paramClz}); 60 if (method == null) { 61 fail("Missing method testHeader5 of TestHeader class!"); 62 } 63 64 SOAPBinding soapBindingAnno = AnnotationUtil.getPrivMethodAnnotation(method, SOAPBinding.class); 65 assertEquals("BARE", soapBindingAnno.parameterStyle().name()); 66 67 WebResult webResultAnno = AnnotationUtil.getWebResult(method); 68 if (webResultAnno == null) { 69 fail("Missing 'in' WebParam Annotation of method testHeader5!"); 70 } 71 assertEquals(true, webResultAnno.header()); 72 assertEquals("outHeader", webResultAnno.partName()); 73 assertEquals("testHeader5", webResultAnno.name()); 74 } 75 76 private String getLocation(String wsdlFile) { 77 return WSDLToJavaExSoapHeaderTest.class.getResource(wsdlFile).getFile(); 78 } 79 } 80 | Popular Tags |