KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > bindings > soap > SoapBindingImplRPCLitTest


1 package org.objectweb.celtix.bus.bindings.soap;
2
3 import java.io.ByteArrayInputStream JavaDoc;
4 import java.io.InputStream JavaDoc;
5 import java.lang.reflect.Method JavaDoc;
6
7 import javax.jws.WebService;
8 import javax.xml.namespace.QName JavaDoc;
9 import javax.xml.soap.SOAPMessage JavaDoc;
10
11 import org.w3c.dom.Node JavaDoc;
12 import org.w3c.dom.NodeList JavaDoc;
13
14 import junit.framework.TestCase;
15
16 import org.objectweb.celtix.bindings.DataBindingCallback;
17 import org.objectweb.celtix.bus.bindings.TestInputStreamContext;
18 import org.objectweb.celtix.bus.jaxws.JAXBDataBindingCallback;
19 import org.objectweb.celtix.context.GenericMessageContext;
20 import org.objectweb.celtix.context.ObjectMessageContext;
21 import org.objectweb.celtix.context.ObjectMessageContextImpl;
22 import org.objectweb.hello_world_rpclit.GreeterRPCLit;
23
24 public class SoapBindingImplRPCLitTest extends TestCase {
25
26     private SOAPBindingImpl binding;
27     private ObjectMessageContextImpl objContext;
28     private SOAPMessageContextImpl soapContext;
29
30     public SoapBindingImplRPCLitTest(String JavaDoc arg0) {
31         super(arg0);
32     }
33
34     /**
35      * @param args
36      */

37     public static void main(String JavaDoc[] args) {
38         junit.textui.TestRunner.run(SoapBindingImplRPCLitTest.class);
39     }
40
41     protected void setUp() throws Exception JavaDoc {
42         super.setUp();
43
44         binding = new SOAPBindingImpl(false);
45         objContext = new ObjectMessageContextImpl();
46         soapContext = new SOAPMessageContextImpl(new GenericMessageContext());
47         
48         Method JavaDoc greetMe = SOAPMessageUtil.getMethod(GreeterRPCLit.class, "greetMe");
49         objContext.setMethod(greetMe);
50     }
51
52     public void testMarshalRPCLitInputMessage() throws Exception JavaDoc {
53         //Test The InputMessage of GreetMe Operation
54
soapContext.put(ObjectMessageContext.MESSAGE_INPUT, false);
55
56         String JavaDoc arg0 = new String JavaDoc("TestSOAPInputPMessage");
57         objContext.setMessageObjects(arg0);
58
59         binding.marshal(objContext, soapContext,
60                                                  new JAXBDataBindingCallback(objContext.getMethod(),
61                                                                              DataBindingCallback.Mode.PARTS,
62                                                                              null));
63         SOAPMessage JavaDoc msg = soapContext.getMessage();
64         assertNotNull(msg);
65         assertTrue(msg.getSOAPBody().hasChildNodes());
66         NodeList JavaDoc list = msg.getSOAPBody().getChildNodes();
67         assertEquals(1, list.getLength());
68         Node JavaDoc operationNode = list.item(0);
69         assertEquals(objContext.getMethod().getName(), operationNode.getLocalName());
70  
71         WebService wsAnnotation = objContext.getMethod().getDeclaringClass().getAnnotation(WebService.class);
72         String JavaDoc expectedNameSpace = wsAnnotation.targetNamespace();
73         assertTrue(expectedNameSpace.equals(operationNode.getNamespaceURI()));
74  
75         assertTrue(operationNode.hasChildNodes());
76         assertEquals(arg0, operationNode.getFirstChild().getFirstChild().getNodeValue());
77     }
78
79     public void testMarshalRPCLitOutputMessage() throws Exception JavaDoc {
80         //Test The Output of GreetMe Operation
81
soapContext.put(ObjectMessageContext.MESSAGE_INPUT, true);
82
83         String JavaDoc arg0 = new String JavaDoc("TestSOAPOutputMessage");
84         objContext.setReturn(arg0);
85
86         binding.marshal(objContext, soapContext,
87                                                  new JAXBDataBindingCallback(objContext.getMethod(),
88                                                                              DataBindingCallback.Mode.PARTS,
89                                                                              null));
90         SOAPMessage JavaDoc msg = soapContext.getMessage();
91         assertNotNull(msg);
92         assertTrue(msg.getSOAPBody().hasChildNodes());
93         NodeList JavaDoc list = msg.getSOAPBody().getChildNodes();
94         assertEquals(1, list.getLength());
95         Node JavaDoc operationNode = list.item(0);
96         assertEquals(objContext.getMethod().getName() + "Response", operationNode.getLocalName());
97         
98         WebService wsAnnotation = objContext.getMethod().getDeclaringClass().getAnnotation(WebService.class);
99         String JavaDoc expectedNameSpace = wsAnnotation.targetNamespace();
100         assertTrue(expectedNameSpace.equals(operationNode.getNamespaceURI()));
101         
102         assertTrue(operationNode.hasChildNodes());
103         assertEquals(arg0, operationNode.getFirstChild().getFirstChild().getNodeValue());
104     }
105
106     public void testParseRPCLitInputMessage() throws Exception JavaDoc {
107
108         QName JavaDoc opName = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "greetMe");
109         QName JavaDoc elName = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "in");
110         String JavaDoc data = new String JavaDoc("TestSOAPInputMessage");
111         String JavaDoc str = SOAPMessageUtil.createRPCLitSOAPMessage(opName, elName, data);
112
113         TestInputStreamContext inCtx = new TestInputStreamContext(str.getBytes());
114         binding.read(inCtx, soapContext);
115
116         SOAPMessage JavaDoc msg = soapContext.getMessage();
117         assertNotNull(msg);
118         assertTrue(msg.getSOAPBody().hasChildNodes());
119         NodeList JavaDoc list = msg.getSOAPBody().getChildNodes();
120
121         assertEquals(1, list.getLength());
122         Node JavaDoc operationNode = list.item(0);
123         assertEquals(objContext.getMethod().getName(), operationNode.getLocalName());
124         assertTrue(operationNode.hasChildNodes());
125         assertEquals(data, operationNode.getFirstChild().getFirstChild().getNodeValue());
126     }
127
128     public void testUnmarshalRPCLitInputMessage() throws Exception JavaDoc {
129         //Test The InputMessage of GreetMe Operation
130
InputStream JavaDoc is = getClass().getResourceAsStream("resources/GreetMeRpcLiteralReq.xml");
131         soapContext.put(ObjectMessageContext.MESSAGE_INPUT, false);
132
133         assertNotNull(binding.getMessageFactory());
134         SOAPMessage JavaDoc soapMessage = binding.getMessageFactory().createMessage(null, is);
135         soapContext.setMessage(soapMessage);
136         //GreetMe has a IN parameter
137
objContext.setMessageObjects(new Object JavaDoc[]{null});
138
139         binding.unmarshal(soapContext, objContext,
140                                  new JAXBDataBindingCallback(objContext.getMethod(),
141                                                              DataBindingCallback.Mode.PARTS, null));
142
143         assertNull(objContext.getReturn());
144         Object JavaDoc[] params = objContext.getMessageObjects();
145         assertNotNull(params);
146         assertEquals(1, params.length);
147         assertEquals("TestSOAPRPCLitInputMessage", (String JavaDoc)params[0]);
148     }
149
150     public void testUnmarshalRPCLitOutputMessage() throws Exception JavaDoc {
151         //Test The InputMessage of GreetMe Operation
152
QName JavaDoc opName = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "greetMe");
153         QName JavaDoc elName = new QName JavaDoc("http://objectweb.org/hello_world_rpclit", "out");
154         String JavaDoc data = new String JavaDoc("TestSOAPOutputMessage");
155         String JavaDoc str = SOAPMessageUtil.createRPCLitSOAPMessage(opName, elName, data);
156         ByteArrayInputStream JavaDoc in = new ByteArrayInputStream JavaDoc(str.getBytes());
157
158         soapContext.put(ObjectMessageContext.MESSAGE_INPUT, true);
159         assertNotNull(binding.getMessageFactory());
160         SOAPMessage JavaDoc soapMessage = binding.getMessageFactory().createMessage(null, in);
161         soapContext.setMessage(soapMessage);
162
163         binding.unmarshal(soapContext, objContext,
164                                  new JAXBDataBindingCallback(objContext.getMethod(),
165                                                              DataBindingCallback.Mode.PARTS, null));
166
167         assertNull(objContext.getMessageObjects());
168         assertNotNull(objContext.getReturn());
169         assertEquals(data, (String JavaDoc)objContext.getReturn());
170     }
171
172 }
173
Popular Tags