KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > jaxws > io > SOAPBodyDataWriterTest


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