1 22 package org.jboss.test.webservice.jbws167; 23 24 import java.net.URL ; 25 import java.util.HashSet ; 26 import java.util.Iterator ; 27 28 import javax.xml.soap.MessageFactory ; 29 import javax.xml.soap.MimeHeaders ; 30 import javax.xml.soap.Name ; 31 import javax.xml.soap.SOAPBody ; 32 import javax.xml.soap.SOAPBodyElement ; 33 import javax.xml.soap.SOAPConnection ; 34 import javax.xml.soap.SOAPConnectionFactory ; 35 import javax.xml.soap.SOAPElement ; 36 import javax.xml.soap.SOAPEnvelope ; 37 import javax.xml.soap.SOAPMessage ; 38 import javax.xml.soap.SOAPPart ; 39 40 import junit.framework.Test; 41 42 import org.jboss.test.webservice.WebserviceTestBase; 43 44 51 public class JBWS167TestCase extends WebserviceTestBase 52 { 53 56 public JBWS167TestCase(String name) 57 { 58 super(name); 59 } 60 61 62 public static Test suite() throws Exception  63 { 64 return getDeploySetup(JBWS167TestCase.class, "ws4ee-jbws167.war"); 65 } 66 67 public void testHttpHeaders() throws Exception  68 { 69 String NS_PREFIX = "ns1"; 70 String NS_URI = "http://org.jboss.test.webservice/jbws167"; 71 String rpcMethodName = "hello"; 72 73 MessageFactory mf = MessageFactory.newInstance(); 74 SOAPMessage msg = mf.createMessage(); 75 SOAPPart sp = msg.getSOAPPart(); 76 SOAPEnvelope envelope = sp.getEnvelope(); 77 SOAPBody bdy = envelope.getBody(); 78 SOAPBodyElement sbe = bdy.addBodyElement(envelope.createName(rpcMethodName, NS_PREFIX, NS_URI)); 79 80 sbe.addChildElement(envelope.createName("String_1")).addTextNode("Some hello"); 82 83 MimeHeaders headers = msg.getMimeHeaders(); 84 headers.addHeader("SOAPAction", "/foo/bar"); 85 headers.addHeader("testme", "testme"); 86 headers.addHeader("testme", "testme2"); 87 88 SOAPConnectionFactory conFactory = SOAPConnectionFactory.newInstance(); 89 SOAPConnection con = conFactory.createConnection(); 90 SOAPMessage resMessage = con.call(msg, new URL ("http://" + getServerHost() + ":8080/ws4ee-jbws167")); 91 92 SOAPBody soapBody = resMessage.getSOAPBody(); 93 SOAPEnvelope soapEnvelope = (SOAPEnvelope ) soapBody.getParentElement(); 94 95 Name rpcName = soapEnvelope.createName(rpcMethodName + "Response", NS_PREFIX, NS_URI); 96 Iterator childElements = soapBody.getChildElements(rpcName); 97 assertTrue("Expexted child: " + rpcName, childElements.hasNext()); 98 99 SOAPElement bodyChild = (SOAPElement ) childElements.next(); 100 Name resName = soapEnvelope.createName("result"); 101 SOAPElement resElement = (SOAPElement ) bodyChild.getChildElements(resName).next(); 102 String value = resElement.getValue(); 103 assertEquals("[pass]", value); 104 105 verifyResponseHeaders(resMessage); 106 } 107 108 private void verifyResponseHeaders(SOAPMessage message) 109 { 110 MimeHeaders headers = message.getMimeHeaders(); 111 assertNotNull(headers); 112 113 HashSet expectedValues = new HashSet (); 114 expectedValues.add("1"); 115 expectedValues.add("2"); 116 expectedValues.add("3"); 117 118 String [] values = headers.getHeader("server-test-header"); 119 assertTrue("Expected 3 values for server test header", values != null && values.length == 3); 120 for (int i = 0; i < 3; i++) 121 { 122 assertTrue("Expected results did not match (got " + values[i] + " for a result)", expectedValues.contains(values[i])); 123 expectedValues.remove(values[i]); 124 } 125 } 126 } 127 | Popular Tags |