1 package org.objectweb.celtix.bus.ws.rm.persistence; 2 3 import java.io.InputStream ; 4 5 import javax.xml.soap.SOAPMessage ; 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 { 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 arg0 = new String ("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 msg = soapContext.getMessage(); 37 38 PersistenceUtils pu = new PersistenceUtils(); 39 InputStream 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 [] params = (Object [])soapContext.get(ObjectMessageContext.METHOD_PARAMETERS); 46 Object [] restoredParams = (Object [])restored.get(ObjectMessageContext.METHOD_PARAMETERS); 47 assertEquals(params.length, restoredParams.length); 48 assertEquals(params[0], restoredParams[0]); 49 SOAPMessage 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 is2 = pu.getContextAsInputStream(restored); 57 is.reset(); 58 is2.reset(); 59 assertEquals(is.available(), is2.available()); 60 } 61 62 } 63 | Popular Tags |