KickJava   Java API By Example, From Geeks To Geeks.

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


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.Source JavaDoc;
12 import javax.xml.transform.dom.DOMSource JavaDoc;
13 import javax.xml.transform.sax.SAXSource JavaDoc;
14 import javax.xml.transform.stream.StreamSource JavaDoc;
15
16 import org.xml.sax.InputSource JavaDoc;
17
18 import junit.framework.TestCase;
19
20 import org.objectweb.celtix.bindings.DataBindingCallback.Mode;
21
22 public class SOAPBodyDataReaderTest<T> extends TestCase {
23     
24     private SOAPMessage JavaDoc soapMsg;
25     private InputStream JavaDoc is;
26     
27     public void setUp() throws IOException JavaDoc, SOAPException JavaDoc {
28         is = getClass().getResourceAsStream("GreetMeDocLiteralReq.xml");
29         soapMsg = MessageFactory.newInstance().createMessage(null, is);
30         assertNotNull(soapMsg);
31     }
32     
33     public void tearDown() throws IOException JavaDoc {
34         is.close();
35     }
36     
37     public void testDOMSourceRead() throws Exception JavaDoc {
38         TestDynamicDataBindingCallback callback =
39             new TestDynamicDataBindingCallback(DOMSource JavaDoc.class, Mode.PAYLOAD);
40         SOAPBodyDataReader<SOAPBody JavaDoc> soapBodyDataReader = new SOAPBodyDataReader<SOAPBody JavaDoc>(callback);
41         DOMSource JavaDoc obj = (DOMSource JavaDoc)soapBodyDataReader.read(0, soapMsg.getSOAPBody());
42         assertNotNull(obj);
43         assertEquals("Message should contain TestSOAPInputMessage",
44                      obj.getNode().getFirstChild().getTextContent(), "TestSOAPInputMessage");
45         
46     }
47     
48     public void testSAXSourceRead() throws Exception JavaDoc {
49         TestDynamicDataBindingCallback callback =
50             new TestDynamicDataBindingCallback(SAXSource JavaDoc.class, Mode.PAYLOAD);
51         SOAPBodyDataReader<SOAPBody JavaDoc> soapBodyDataReader = new SOAPBodyDataReader<SOAPBody JavaDoc>(callback);
52         SAXSource JavaDoc obj = (SAXSource JavaDoc)soapBodyDataReader.read(0, soapMsg.getSOAPBody());
53         assertNotNull(obj);
54         checkSource("TestSOAPInputMessage", obj);
55     }
56     
57     public void testStreamSourceRead() throws Exception JavaDoc {
58         TestDynamicDataBindingCallback callback =
59             new TestDynamicDataBindingCallback(StreamSource JavaDoc.class, Mode.PAYLOAD);
60         SOAPBodyDataReader<SOAPBody JavaDoc> soapBodyDataReader = new SOAPBodyDataReader<SOAPBody JavaDoc>(callback);
61         StreamSource JavaDoc obj = (StreamSource JavaDoc)soapBodyDataReader.read(0, soapMsg.getSOAPBody());
62         assertNotNull(obj);
63         checkSource("TestSOAPInputMessage", obj);
64     }
65     
66     public void testJAXBObjectRead() throws Exception JavaDoc {
67         
68         JAXBContext jc = JAXBContext.newInstance("org.objectweb.hello_world_soap_http.types");
69         TestDynamicDataBindingCallback callback =
70             new TestDynamicDataBindingCallback(jc, Mode.PAYLOAD);
71         SOAPBodyDataReader<SOAPBody JavaDoc> soapBodyDataReader = new SOAPBodyDataReader<SOAPBody JavaDoc>(callback);
72         Object JavaDoc obj = soapBodyDataReader.read(0, soapMsg.getSOAPBody());
73         assertNotNull(obj);
74         assertTrue("Expect class of type org.objectweb.hello_world_soap_http.types.GreetMe",
75                    obj.getClass().getName().equals("org.objectweb.hello_world_soap_http.types.GreetMe"));
76     }
77     
78     private void checkSource(String JavaDoc expected, Source JavaDoc source) {
79         
80         InputStream JavaDoc inputStream = null;
81         
82         if (source.getClass().isAssignableFrom(SAXSource JavaDoc.class)) {
83             InputSource JavaDoc inputSource = ((SAXSource JavaDoc)source).getInputSource();
84             inputStream = inputSource.getByteStream();
85         } else if (source.getClass().isAssignableFrom(StreamSource JavaDoc.class)) {
86             inputStream = ((StreamSource JavaDoc)source).getInputStream();
87         }
88         
89         int i = 0;
90         StringBuilder JavaDoc sb = new StringBuilder JavaDoc();
91         try {
92             while (i != -1) {
93                 i = inputStream.read();
94                 sb.append((char)i);
95             }
96         } catch (IOException JavaDoc e) {
97             // TODO Auto-generated catch block
98
e.printStackTrace();
99         }
100         String JavaDoc received = sb.toString();
101         assertTrue("Expected: " + expected, received.contains(expected));
102         
103     }
104
105 }
106
Popular Tags