1 package org.objectweb.celtix.bus.jaxws.io; 2 3 import java.io.IOException ; 4 import java.io.InputStream ; 5 6 import javax.xml.soap.MessageFactory ; 7 import javax.xml.soap.SOAPException ; 8 import javax.xml.soap.SOAPMessage ; 9 import javax.xml.transform.dom.DOMSource ; 10 import javax.xml.transform.sax.SAXSource ; 11 import javax.xml.transform.stream.StreamSource ; 12 13 import org.xml.sax.InputSource ; 14 15 import junit.framework.TestCase; 16 17 import org.objectweb.celtix.bindings.DataBindingCallback.Mode; 18 import org.objectweb.celtix.bus.jaxws.DynamicDataBindingCallback; 19 20 public class SOAPMessageDataWriterTest<T> extends TestCase { 21 22 private SOAPMessage soapMsg; 23 private InputStream is; 24 private InputStream is2; 25 private InputStream is3; 26 private Object obj; 27 private DOMSource domSource; 28 private SAXSource saxSource; 29 private StreamSource streamSource; 30 31 public void setUp() throws IOException , SOAPException { 32 is = getClass().getResourceAsStream("GreetMeDocLiteralReq.xml"); 33 is2 = getClass().getResourceAsStream("GreetMeDocLiteralReq.xml"); 34 is3 = getClass().getResourceAsStream("GreetMeDocLiteralReq.xml"); 35 SOAPMessage msg = MessageFactory.newInstance().createMessage(null, is); 36 domSource = new DOMSource (msg.getSOAPPart()); 37 saxSource = new SAXSource (new InputSource (is2)); 38 streamSource = new StreamSource (is3); 39 soapMsg = MessageFactory.newInstance().createMessage(); 40 assertNotNull(soapMsg); 41 } 42 43 public void tearDown() throws IOException { 44 } 46 47 public void testDOMSourceWrite() throws Exception { 48 TestDynamicDataBindingCallback callback = 49 new TestDynamicDataBindingCallback(DOMSource .class, Mode.MESSAGE); 50 TestSOAPMessageDataWriter<SOAPMessage > soapMessageDataWriter = 51 new TestSOAPMessageDataWriter<SOAPMessage >(callback); 52 obj = domSource; 53 soapMessageDataWriter.write(obj, soapMsg); 54 SOAPMessage soapMessage = soapMessageDataWriter.getTestSOAPMessage(); 55 assertTrue("TextContent should be TestSOAPInputMessage", 56 "TestSOAPInputMessage".equals(soapMessage.getSOAPBody().getFirstChild().getTextContent())); 57 58 } 59 60 public void testSAXSourceWrite() throws Exception { 61 TestDynamicDataBindingCallback callback = 62 new TestDynamicDataBindingCallback(SAXSource .class, Mode.MESSAGE); 63 TestSOAPMessageDataWriter<SOAPMessage > soapMessageDataWriter = 64 new TestSOAPMessageDataWriter<SOAPMessage >(callback); 65 obj = saxSource; 66 soapMessageDataWriter.write(obj, soapMsg); 67 SOAPMessage soapMessage = soapMessageDataWriter.getTestSOAPMessage(); 68 assertTrue("TextContent should be TestSOAPInputMessage", 69 "TestSOAPInputMessage".equals(soapMessage.getSOAPBody().getFirstChild().getTextContent())); 70 71 } 72 73 public void testStreamSourceWrite() throws Exception { 74 TestDynamicDataBindingCallback callback = 75 new TestDynamicDataBindingCallback(StreamSource .class, Mode.MESSAGE); 76 TestSOAPMessageDataWriter<SOAPMessage > soapMessageDataWriter = 77 new TestSOAPMessageDataWriter<SOAPMessage >(callback); 78 obj = streamSource; 79 soapMessageDataWriter.write(obj, soapMsg); 80 SOAPMessage soapMessage = soapMessageDataWriter.getTestSOAPMessage(); 81 assertTrue("TextContent should be TestSOAPInputMessage", 82 "TestSOAPInputMessage".equals(soapMessage.getSOAPBody().getFirstChild().getTextContent())); 83 84 } 85 86 87 private class TestSOAPMessageDataWriter<X> extends SOAPMessageDataWriter<X> { 88 89 public TestSOAPMessageDataWriter(DynamicDataBindingCallback cb) { 90 super(cb); 91 } 92 93 public SOAPMessage getTestSOAPMessage() { 94 return dest; 95 } 96 97 } 98 99 } 100 | Popular Tags |