KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > tools > processors > wsdl2 > WSDLToJavaExSoapHeaderTest


1 package org.objectweb.celtix.tools.processors.wsdl2;
2
3 import java.io.File JavaDoc;
4 import java.lang.reflect.Method JavaDoc;
5 import java.net.URLClassLoader JavaDoc;
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 JavaDoc classLoader;
20
21     public void setUp() throws Exception JavaDoc {
22         super.setUp();
23         File JavaDoc classFile = new java.io.File JavaDoc(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 JavaDoc {
30         String JavaDoc[] args = new String JavaDoc[] {"-d", output.getCanonicalPath(),
31                                       "-exsh", "true", "-compile",
32                                       getLocation("/wsdl/soapheader_test.wsdl")};
33         WSDLToJava.main(args);
34
35         Class JavaDoc clz = classLoader.loadClass("org.objectweb.header_test.TestHeader");
36         Method JavaDoc method = clz.getMethod("testHeader4", new Class JavaDoc[] {java.lang.String JavaDoc.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 JavaDoc {
51         String JavaDoc[] args = new String JavaDoc[] {"-d", output.getCanonicalPath(), "-compile",
52                                       getLocation("/wsdl/soapheader_test.wsdl")};
53         WSDLToJava.main(args);
54
55         Class JavaDoc clz = classLoader.loadClass("org.objectweb.header_test.TestHeader");
56         Class JavaDoc paramClz = classLoader.loadClass("org.objectweb.header_test.types.TestHeader5");
57         assertEquals(5, clz.getMethods().length);
58         
59         Method JavaDoc method = clz.getMethod("testHeader5", new Class JavaDoc[] {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 JavaDoc getLocation(String JavaDoc wsdlFile) {
77         return WSDLToJavaExSoapHeaderTest.class.getResource(wsdlFile).getFile();
78     }
79 }
80
Popular Tags