KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > ws > rm > persistence > PersistenceUtilsTest


1 package org.objectweb.celtix.bus.ws.rm.persistence;
2
3 import java.io.InputStream JavaDoc;
4
5 import javax.xml.soap.SOAPMessage JavaDoc;
6 import javax.xml.ws.handler.MessageContext;
7 import javax.xml.ws.handler.soap.SOAPMessageContext;
8
9 import junit.framework.TestCase;
10
11 import org.objectweb.celtix.bindings.DataBindingCallback;
12 import org.objectweb.celtix.bus.bindings.soap.SOAPBindingImpl;
13 import org.objectweb.celtix.bus.bindings.soap.SOAPMessageUtil;
14 import org.objectweb.celtix.bus.jaxws.JAXBDataBindingCallback;
15 import org.objectweb.celtix.context.ObjectMessageContext;
16 import org.objectweb.celtix.context.ObjectMessageContextImpl;
17 import org.objectweb.hello_world_soap_http.Greeter;
18
19 public class PersistenceUtilsTest extends TestCase {
20
21     public void testContext() throws Exception JavaDoc {
22         
23         SOAPBindingImpl binding = new SOAPBindingImpl(false);
24         ObjectMessageContextImpl objContext = new ObjectMessageContextImpl();
25         objContext.setMethod(SOAPMessageUtil.getMethod(Greeter.class, "greetMe"));
26         SOAPMessageContext soapContext = (SOAPMessageContext)binding.createBindingMessageContext(objContext);
27         soapContext.put(ObjectMessageContext.MESSAGE_INPUT, false);
28         String JavaDoc arg0 = new String JavaDoc("TestSOAPInputPMessage");
29         objContext.setMessageObjects(arg0);
30
31         binding.marshal(objContext,
32                          soapContext,
33                          new JAXBDataBindingCallback(objContext.getMethod(),
34                                                      DataBindingCallback.Mode.PARTS,
35                                                      null));
36         SOAPMessage JavaDoc msg = soapContext.getMessage();
37         
38         PersistenceUtils pu = new PersistenceUtils();
39         InputStream JavaDoc is = pu.getContextAsInputStream(soapContext);
40         assert null != is;
41         MessageContext restored = pu.getContext(is);
42         assertEquals(3, restored.keySet().size());
43         assertEquals(soapContext.get(ObjectMessageContext.MESSAGE_INPUT),
44                      restored.get(ObjectMessageContext.MESSAGE_INPUT));
45         Object JavaDoc[] params = (Object JavaDoc[])soapContext.get(ObjectMessageContext.METHOD_PARAMETERS);
46         Object JavaDoc[] restoredParams = (Object JavaDoc[])restored.get(ObjectMessageContext.METHOD_PARAMETERS);
47         assertEquals(params.length, restoredParams.length);
48         assertEquals(params[0], restoredParams[0]);
49         SOAPMessage JavaDoc restoredMsg = ((SOAPMessageContext)binding.
50             createBindingMessageContext(objContext)).getMessage();
51         assertEquals(msg.getSOAPBody().getChildNodes().getLength(),
52                      restoredMsg.getSOAPBody().getChildNodes().getLength());
53         assertNull(msg.getSOAPHeader());
54         assertNull(restoredMsg.getSOAPHeader());
55         
56         InputStream JavaDoc is2 = pu.getContextAsInputStream(restored);
57         is.reset();
58         is2.reset();
59         assertEquals(is.available(), is2.available());
60     }
61         
62 }
63
Popular Tags