KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > bindings > soap > SoapMessageContextImplTest


1 package org.objectweb.celtix.bus.bindings.soap;
2
3 import java.io.InputStream JavaDoc;
4
5 import javax.xml.bind.JAXBContext;
6 import javax.xml.namespace.QName JavaDoc;
7 import javax.xml.soap.MessageFactory JavaDoc;
8 import javax.xml.soap.SOAPMessage JavaDoc;
9 import javax.xml.ws.handler.soap.SOAPMessageContext;
10
11 import junit.framework.TestCase;
12
13 import org.objectweb.celtix.context.GenericMessageContext;
14 import org.objectweb.header_test.types.TestHeader1;
15 import org.objectweb.header_test.types.TestHeader2Response;
16
17 public class SoapMessageContextImplTest extends TestCase {
18     private MessageFactory JavaDoc factory;
19     
20     public SoapMessageContextImplTest(String JavaDoc arg0) {
21         super(arg0);
22     }
23
24     public static void main(String JavaDoc[] args) {
25         junit.textui.TestRunner.run(SoapMessageContextImplTest.class);
26     }
27     
28     protected void setUp() throws Exception JavaDoc {
29         super.setUp();
30         
31         factory = MessageFactory.newInstance();
32     }
33     
34     public void testGetHeaders() throws Exception JavaDoc {
35         SOAPMessageContext smc = new SOAPMessageContextImpl(new GenericMessageContext());
36         assertNotNull(smc);
37
38         JAXBContext jaxbContext = JAXBContext.newInstance(TestHeader1.class.getPackage().getName());
39         //Test 1 No Headers in SOAP Message
40
setSOAPMessage(smc, "resources/TestIntDocLitTypeTestReq.xml");
41         Object JavaDoc[] obj1 = smc.getHeaders(null, jaxbContext, true);
42         
43         assertEquals(0, obj1.length);
44         
45         //Test 2 Headers in SOAP Message
46
QName JavaDoc headerName2 =
47             new QName JavaDoc("http://objectweb.org/header_test/types", "testHeader1");
48         setSOAPMessage(smc, "resources/TestHeader1Req.xml");
49         Object JavaDoc[] obj2 = smc.getHeaders(headerName2, jaxbContext, true);
50         
51         assertEquals(1, obj2.length);
52         assertTrue(TestHeader1.class.isAssignableFrom(obj2[0].getClass()));
53         
54         //Test 2 Headers in SOAP Message
55
QName JavaDoc headerName3 =
56             new QName JavaDoc("http://objectweb.org/header_test/types", "testHeader2Response");
57         setSOAPMessage(smc, "resources/TestHeader2.xml");
58         Object JavaDoc[] obj3 = smc.getHeaders(headerName3, jaxbContext, true);
59         
60         assertEquals(2, obj3.length);
61         assertTrue(TestHeader2Response.class.isAssignableFrom(obj3[0].getClass()));
62         assertTrue(TestHeader2Response.class.isAssignableFrom(obj3[1].getClass()));
63         
64         TestHeader2Response val = (TestHeader2Response)obj3[0];
65         assertEquals("Header1", val.getResponseType());
66         
67         val = (TestHeader2Response)obj3[1];
68         assertEquals("Header2", val.getResponseType());
69         
70     }
71     
72     private void setSOAPMessage(SOAPMessageContext context, String JavaDoc resource) throws Exception JavaDoc {
73         InputStream JavaDoc is = getClass().getResourceAsStream(resource);
74         SOAPMessage JavaDoc msg = factory.createMessage(null, is);
75         context.setMessage(msg);
76     }
77 }
78
Popular Tags