001: package org.objectweb.celtix.bus.jaxws.io;
002:
003: import java.io.IOException;
004: import java.io.InputStream;
005:
006: import javax.xml.soap.MessageFactory;
007: import javax.xml.soap.SOAPException;
008: import javax.xml.soap.SOAPMessage;
009: import javax.xml.transform.dom.DOMSource;
010: import javax.xml.transform.sax.SAXSource;
011: import javax.xml.transform.stream.StreamSource;
012:
013: import org.xml.sax.InputSource;
014:
015: import junit.framework.TestCase;
016:
017: import org.objectweb.celtix.bindings.DataBindingCallback.Mode;
018: import org.objectweb.celtix.bus.jaxws.DynamicDataBindingCallback;
019:
020: public class SOAPMessageDataWriterTest<T> extends TestCase {
021:
022: private SOAPMessage soapMsg;
023: private InputStream is;
024: private InputStream is2;
025: private InputStream is3;
026: private Object obj;
027: private DOMSource domSource;
028: private SAXSource saxSource;
029: private StreamSource streamSource;
030:
031: public void setUp() throws IOException, SOAPException {
032: is = getClass().getResourceAsStream("GreetMeDocLiteralReq.xml");
033: is2 = getClass()
034: .getResourceAsStream("GreetMeDocLiteralReq.xml");
035: is3 = getClass()
036: .getResourceAsStream("GreetMeDocLiteralReq.xml");
037: SOAPMessage msg = MessageFactory.newInstance().createMessage(
038: null, is);
039: domSource = new DOMSource(msg.getSOAPPart());
040: saxSource = new SAXSource(new InputSource(is2));
041: streamSource = new StreamSource(is3);
042: soapMsg = MessageFactory.newInstance().createMessage();
043: assertNotNull(soapMsg);
044: }
045:
046: public void tearDown() throws IOException {
047: //is.close();
048: }
049:
050: public void testDOMSourceWrite() throws Exception {
051: TestDynamicDataBindingCallback callback = new TestDynamicDataBindingCallback(
052: DOMSource.class, Mode.MESSAGE);
053: TestSOAPMessageDataWriter<SOAPMessage> soapMessageDataWriter = new TestSOAPMessageDataWriter<SOAPMessage>(
054: callback);
055: obj = domSource;
056: soapMessageDataWriter.write(obj, soapMsg);
057: SOAPMessage soapMessage = soapMessageDataWriter
058: .getTestSOAPMessage();
059: assertTrue("TextContent should be TestSOAPInputMessage",
060: "TestSOAPInputMessage".equals(soapMessage.getSOAPBody()
061: .getFirstChild().getTextContent()));
062:
063: }
064:
065: public void testSAXSourceWrite() throws Exception {
066: TestDynamicDataBindingCallback callback = new TestDynamicDataBindingCallback(
067: SAXSource.class, Mode.MESSAGE);
068: TestSOAPMessageDataWriter<SOAPMessage> soapMessageDataWriter = new TestSOAPMessageDataWriter<SOAPMessage>(
069: callback);
070: obj = saxSource;
071: soapMessageDataWriter.write(obj, soapMsg);
072: SOAPMessage soapMessage = soapMessageDataWriter
073: .getTestSOAPMessage();
074: assertTrue("TextContent should be TestSOAPInputMessage",
075: "TestSOAPInputMessage".equals(soapMessage.getSOAPBody()
076: .getFirstChild().getTextContent()));
077:
078: }
079:
080: public void testStreamSourceWrite() throws Exception {
081: TestDynamicDataBindingCallback callback = new TestDynamicDataBindingCallback(
082: StreamSource.class, Mode.MESSAGE);
083: TestSOAPMessageDataWriter<SOAPMessage> soapMessageDataWriter = new TestSOAPMessageDataWriter<SOAPMessage>(
084: callback);
085: obj = streamSource;
086: soapMessageDataWriter.write(obj, soapMsg);
087: SOAPMessage soapMessage = soapMessageDataWriter
088: .getTestSOAPMessage();
089: assertTrue("TextContent should be TestSOAPInputMessage",
090: "TestSOAPInputMessage".equals(soapMessage.getSOAPBody()
091: .getFirstChild().getTextContent()));
092:
093: }
094:
095: private class TestSOAPMessageDataWriter<X> extends
096: SOAPMessageDataWriter<X> {
097:
098: public TestSOAPMessageDataWriter(DynamicDataBindingCallback cb) {
099: super (cb);
100: }
101:
102: public SOAPMessage getTestSOAPMessage() {
103: return dest;
104: }
105:
106: }
107:
108: }
|