1 package org.objectweb.celtix.bus.bindings.soap; 2 3 import java.io.InputStream ; 4 5 import javax.xml.bind.JAXBContext; 6 import javax.xml.namespace.QName ; 7 import javax.xml.soap.MessageFactory ; 8 import javax.xml.soap.SOAPMessage ; 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 factory; 19 20 public SoapMessageContextImplTest(String arg0) { 21 super(arg0); 22 } 23 24 public static void main(String [] args) { 25 junit.textui.TestRunner.run(SoapMessageContextImplTest.class); 26 } 27 28 protected void setUp() throws Exception { 29 super.setUp(); 30 31 factory = MessageFactory.newInstance(); 32 } 33 34 public void testGetHeaders() throws Exception { 35 SOAPMessageContext smc = new SOAPMessageContextImpl(new GenericMessageContext()); 36 assertNotNull(smc); 37 38 JAXBContext jaxbContext = JAXBContext.newInstance(TestHeader1.class.getPackage().getName()); 39 setSOAPMessage(smc, "resources/TestIntDocLitTypeTestReq.xml"); 41 Object [] obj1 = smc.getHeaders(null, jaxbContext, true); 42 43 assertEquals(0, obj1.length); 44 45 QName headerName2 = 47 new QName ("http://objectweb.org/header_test/types", "testHeader1"); 48 setSOAPMessage(smc, "resources/TestHeader1Req.xml"); 49 Object [] obj2 = smc.getHeaders(headerName2, jaxbContext, true); 50 51 assertEquals(1, obj2.length); 52 assertTrue(TestHeader1.class.isAssignableFrom(obj2[0].getClass())); 53 54 QName headerName3 = 56 new QName ("http://objectweb.org/header_test/types", "testHeader2Response"); 57 setSOAPMessage(smc, "resources/TestHeader2.xml"); 58 Object [] 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 resource) throws Exception { 73 InputStream is = getClass().getResourceAsStream(resource); 74 SOAPMessage msg = factory.createMessage(null, is); 75 context.setMessage(msg); 76 } 77 } 78 | Popular Tags |