KickJava   Java API By Example, From Geeks To Geeks.

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


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