Author: gdaniels
Date: Fri Mar  9 07:58:46 2007
New Revision: 516443

URL: http://svn.apache.org/viewvc?view=rev&rev=516443
Log:
Add tests to make sure element checks are case-sensitive and 
namespace-sensitive.

Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java?view=diff&rev=516443&r1=516442&r2=516443
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java
 Fri Mar  9 07:58:46 2007
@@ -19,6 +19,7 @@
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.om.OMException;
 import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.SOAPBody;
@@ -35,26 +36,20 @@
 import org.apache.axiom.soap.SOAPFaultValue;
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import java.io.StringReader;
 import java.util.Iterator;
 
 public class StAXSOAPModelBuilderTest extends TestCase {
 
-    private Log log = LogFactory.getLog(getClass());
-
     public void setUp() {
 
     }
 
-
-    public void testStAXSOAPModelBuilder() {
+    public void testStAXSOAPModelBuilder() throws Exception {
         String soap12Message =
                 "<env:Envelope 
xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\";>\n" +
                         "   <env:Header>\n" +
@@ -141,438 +136,466 @@
                         "   </env:Body>\n" +
                         "</env:Envelope>";
 
-
-        try {
-            XMLStreamReader sopa12Parser = XMLInputFactory.newInstance()
-                    .createXMLStreamReader(new StringReader(soap12Message));
-            OMXMLParserWrapper soap12Builder = new 
StAXSOAPModelBuilder(sopa12Parser, null);
-            SOAPEnvelope soap12Envelope = (SOAPEnvelope) 
soap12Builder.getDocumentElement();
-
-            assertTrue("SOAP 1.2 :- envelope local name mismatch",
-                       soap12Envelope.getLocalName().equals(
-                               SOAPConstants.SOAPENVELOPE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- envelope namespace uri mismatch",
-                       soap12Envelope.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            SOAPHeader header = soap12Envelope.getHeader();
-            assertTrue("SOAP 1.2 :- Header local name mismatch",
-                       header.getLocalName().equals(
-                               SOAPConstants.HEADER_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Header namespace uri mismatch",
-                       header.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) 
header.getFirstElement();
-            assertTrue("SOAP 1.2 :- Header block name mismatch",
-                       headerBlock.getLocalName().equals("echoOk"));
-            assertTrue("SOAP 1.2 :- Header block name space uri mismatch",
-                       headerBlock.getNamespace().getNamespaceURI().equals(
-                               "http://example.org/ts-tests";));
-            assertEquals("SOAP 1.2 :- Header block text mismatch", 
headerBlock.getText().trim(),
-                         "foo");
-
-            // Attribute iteration is not in any guaranteed order.
-            // Use QNames to get the OMAttributes.
-            QName roleQName = new 
QName(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                        SOAP12Constants.SOAP_ROLE);
-            QName mustUnderstandQName = new 
QName(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                                  
SOAP12Constants.ATTR_MUSTUNDERSTAND);
-
-            OMAttribute roleAttribute = headerBlock.getAttribute(roleQName);
-            OMAttribute mustUnderstandAttribute = 
headerBlock.getAttribute(mustUnderstandQName);
-
-
-            assertTrue("SOAP 1.2 :- Role attribute name not found",
-                       roleAttribute != null);
-
-
-            assertTrue("SOAP 1.2 :- Role value mismatch",
-                       roleAttribute.getAttributeValue().trim().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI + 
"/" +
-                                       SOAP12Constants.SOAP_ROLE +
-                                       "/" +
-                                       "ultimateReceiver"));
-
-            assertTrue("SOAP 1.2 :- Mustunderstand attribute not found",
-                       mustUnderstandAttribute != null);
-
-            assertTrue("SOAP 1.2 :- Mustunderstand value mismatch",
-                       mustUnderstandAttribute.getAttributeValue().equals(
-                               SOAPConstants.ATTR_MUSTUNDERSTAND_TRUE));
-
-
-            SOAPBody body = soap12Envelope.getBody();
-            assertTrue("SOAP 1.2 :- Body local name mismatch",
-                       
body.getLocalName().equals(SOAPConstants.BODY_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Body namespace uri mismatch",
-                       body.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            SOAPFault fault = body.getFault();
-            assertTrue("SOAP 1.2 :- Fault local name mismatch",
-                       fault.getLocalName().equals(
-                               SOAPConstants.SOAPFAULT_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault namespace uri mismatch",
-                       fault.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            Iterator iteratorInFault = fault.getChildren();
-
-            iteratorInFault.next();
-            SOAPFaultCode code = (SOAPFaultCode) iteratorInFault.next();
-            assertTrue("SOAP 1.2 :- Fault code local name mismatch",
-                       code.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
-                       code.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            Iterator iteratorInCode = code.getChildren();
-
-            iteratorInCode.next();
-            SOAPFaultValue value1 = (SOAPFaultValue) iteratorInCode.next();
-            assertTrue("SOAP 1.2 :- Fault code value local name mismatch",
-                       value1.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_VALUE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
-                       value1.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-            assertTrue("SOAP 1.2 :- Value1 text mismatch",
-                       value1.getText().equals("env:Sender"));
-
-            QName valueQName = value1.getTextAsQName();
-            assertTrue("SOAP 1.2 :- Fault code value's qname local name 
mismatch",
-                       valueQName.getLocalPart().equals("Sender"));
-
-            assertTrue("SOAP 1.2 :- Fault code value's qname namespace uri 
mismatch",
-                       valueQName.getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-
-            iteratorInCode.next();
-            SOAPFaultSubCode subCode1 = (SOAPFaultSubCode) 
iteratorInCode.next();
-            assertTrue("SOAP 1.2 :- Fault sub code local name mismatch",
-                       subCode1.getLocalName().equals(
-                               
SOAP12Constants.SOAP_FAULT_SUB_CODE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault subcode namespace uri mismatch",
-                       subCode1.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            Iterator iteratorInSubCode1 = subCode1.getChildren();
-
-            iteratorInSubCode1.next();
-            SOAPFaultValue value2 = (SOAPFaultValue) iteratorInSubCode1.next();
-            assertTrue("SOAP 1.2 :- Fault code value local name mismatch",
-                       value2.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_VALUE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
-                       value2.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-            assertTrue("SOAP 1.2 :- Value2 text mismatch",
-                       value2.getText().equals("m:MessageTimeout"));
-
-            iteratorInSubCode1.next();
-            SOAPFaultSubCode subCode2 = (SOAPFaultSubCode) 
iteratorInSubCode1.next();
-            assertTrue("SOAP 1.2 :- Fault sub code local name mismatch",
-                       subCode2.getLocalName().equals(
-                               
SOAP12Constants.SOAP_FAULT_SUB_CODE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault subcode namespace uri mismatch",
-                       subCode2.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            Iterator iteratorInSubCode2 = subCode2.getChildren();
-
-            iteratorInSubCode2.next();
-            SOAPFaultValue value3 = (SOAPFaultValue) iteratorInSubCode2.next();
-            assertTrue("SOAP 1.2 :- Fault code value local name mismatch",
-                       value3.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_VALUE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
-                       value3.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-            assertTrue("SOAP 1.2 :- Value2 text mismatch",
-                       value3.getText().equals("m:MessageTimeout"));
-
-            iteratorInFault.next();
-            SOAPFaultReason reason = (SOAPFaultReason) iteratorInFault.next();
-            assertTrue("SOAP 1.2 :- Fault reason local name mismatch",
-                       reason.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault reason namespace uri mismatch",
-                       reason.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            Iterator iteratorInReason = reason.getChildren();
-
-            iteratorInReason.next();
-            SOAPFaultText text = (SOAPFaultText) iteratorInReason.next();
-            assertTrue("SOAP 1.2 :- Fault text local name mismatch",
-                       text.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_TEXT_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Text namespace uri mismatch",
-                       text.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-            assertTrue("SOAP 1.2 :- Text value mismatch",
-                       text.getText().equals("Sender Timeout"));
-
-            iteratorInFault.next();
-            SOAPFaultNode node = (SOAPFaultNode) iteratorInFault.next();
-            assertTrue("SOAP 1.2 :- Fault node local name mismatch",
-                       node.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_NODE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault node namespace uri mismatch",
-                       node.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-            assertTrue("SOAP 1.2 :- Node value mismatch",
-                       node.getText().trim().equals(
-                               
"http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver";));
-
-            iteratorInFault.next();
-            SOAPFaultRole role = (SOAPFaultRole) iteratorInFault.next();
-            assertTrue("SOAP 1.2 :- Fault role local name mismatch",
-                       role.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_ROLE_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault role namespace uri mismatch",
-                       role.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-            assertTrue("SOAP 1.2 :- Role value mismatch",
-                       role.getText().trim().equals("ultimateReceiver"));
-
-            iteratorInFault.next();
-            SOAPFaultDetail detail = (SOAPFaultDetail) iteratorInFault.next();
-            assertTrue("SOAP 1.2 :- Fault detail local name mismatch",
-                       detail.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault detail namespace uri mismatch",
-                       detail.getNamespace().getNamespaceURI().equals(
-                               SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            assertTrue("SOAP 1.2 :- Text in detail mismatch",
-                       detail.getText().trim().equals("Details of error"));
-
-            Iterator iteratorInDetail = detail.getChildren();
-
-            iteratorInDetail.next();
-            OMElement element1 = (OMElement) iteratorInDetail.next();
-            assertTrue("SOAP 1.2 :- MaxTime element mismatch",
-                       element1.getLocalName().equals("MaxTime"));
-            assertTrue("SOAP 1.2 :- MaxTime element namespace mismatch",
-                       element1.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-            assertTrue("SOAP 1.2 :- Text value in MaxTime element mismatch",
-                       element1.getText().trim().equals("P5M"));
-
-            Iterator attributeIterator = element1.getAllAttributes();
-            OMAttribute attributeInMaxTime = (OMAttribute) 
attributeIterator.next();
-            assertTrue("SOAP 1.2 :- Attribute local name mismatch",
-                       attributeInMaxTime.getLocalName().equals("detail"));
-            assertTrue("SOAP 1.2 :- Attribute namespace mismatch",
-                       
attributeInMaxTime.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-            assertTrue("SOAP 1.2 :- Attribute value mismatch",
-                       
attributeInMaxTime.getAttributeValue().trim().equals("This is only a test"));
-
-            iteratorInDetail.next();
-            OMElement element2 = (OMElement) iteratorInDetail.next();
-            assertTrue("SOAP 1.2 :- AveTime element mismatch",
-                       element2.getLocalName().equals("AveTime"));
-            assertTrue("SOAP 1.2 :- AveTime element namespace mismatch",
-                       element2.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-
-            Iterator iteratorInAveTimeElement = element2.getChildren();
-
-            iteratorInAveTimeElement.next();
-            OMElement element21 = (OMElement) iteratorInAveTimeElement.next();
-            assertTrue("SOAP 1.2 :- Time element mismatch",
-                       element21.getLocalName().equals("Time"));
-            assertTrue("SOAP 1.2 :- Time element namespace mismatch",
-                       element21.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-            assertTrue("SOAP 1.2 :- Text value in Time element mismatch",
-                       element21.getText().trim().equals("P3M"));
-
-            XMLStreamReader sopa11Parser = XMLInputFactory.newInstance()
-                    .createXMLStreamReader(new StringReader(soap11Message));
-            OMXMLParserWrapper soap11Builder = new 
StAXSOAPModelBuilder(sopa11Parser, null);
-            SOAPEnvelope soap11Envelope = (SOAPEnvelope) 
soap11Builder.getDocumentElement();
+        XMLStreamReader soap12Parser = XMLInputFactory.newInstance()
+                .createXMLStreamReader(new StringReader(soap12Message));
+        OMXMLParserWrapper soap12Builder = new 
StAXSOAPModelBuilder(soap12Parser, null);
+        SOAPEnvelope soap12Envelope = (SOAPEnvelope) 
soap12Builder.getDocumentElement();
+
+        assertTrue("SOAP 1.2 :- envelope local name mismatch",
+                   soap12Envelope.getLocalName().equals(
+                           SOAPConstants.SOAPENVELOPE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- envelope namespace uri mismatch",
+                   soap12Envelope.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        SOAPHeader header = soap12Envelope.getHeader();
+        assertTrue("SOAP 1.2 :- Header local name mismatch",
+                   header.getLocalName().equals(
+                           SOAPConstants.HEADER_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Header namespace uri mismatch",
+                   header.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) 
header.getFirstElement();
+        assertTrue("SOAP 1.2 :- Header block name mismatch",
+                   headerBlock.getLocalName().equals("echoOk"));
+        assertTrue("SOAP 1.2 :- Header block name space uri mismatch",
+                   headerBlock.getNamespace().getNamespaceURI().equals(
+                           "http://example.org/ts-tests";));
+        assertEquals("SOAP 1.2 :- Header block text mismatch", 
headerBlock.getText().trim(),
+                     "foo");
+
+        // Attribute iteration is not in any guaranteed order.
+        // Use QNames to get the OMAttributes.
+        QName roleQName = new 
QName(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI,
+                                    SOAP12Constants.SOAP_ROLE);
+        QName mustUnderstandQName = new 
QName(SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI,
+                                              
SOAP12Constants.ATTR_MUSTUNDERSTAND);
+
+        OMAttribute roleAttribute = headerBlock.getAttribute(roleQName);
+        OMAttribute mustUnderstandAttribute = 
headerBlock.getAttribute(mustUnderstandQName);
+
+
+        assertTrue("SOAP 1.2 :- Role attribute name not found",
+                   roleAttribute != null);
+
+
+        assertTrue("SOAP 1.2 :- Role value mismatch",
+                   roleAttribute.getAttributeValue().trim().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI + "/" +
+                                   SOAP12Constants.SOAP_ROLE +
+                                   "/" +
+                                   "ultimateReceiver"));
+
+        assertTrue("SOAP 1.2 :- Mustunderstand attribute not found",
+                   mustUnderstandAttribute != null);
+
+        assertTrue("SOAP 1.2 :- Mustunderstand value mismatch",
+                   mustUnderstandAttribute.getAttributeValue().equals(
+                           SOAPConstants.ATTR_MUSTUNDERSTAND_TRUE));
+
+
+        SOAPBody body = soap12Envelope.getBody();
+        assertTrue("SOAP 1.2 :- Body local name mismatch",
+                   body.getLocalName().equals(SOAPConstants.BODY_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Body namespace uri mismatch",
+                   body.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        SOAPFault fault = body.getFault();
+        assertTrue("SOAP 1.2 :- Fault local name mismatch",
+                   fault.getLocalName().equals(
+                           SOAPConstants.SOAPFAULT_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault namespace uri mismatch",
+                   fault.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        Iterator iteratorInFault = fault.getChildren();
+
+        iteratorInFault.next();
+        SOAPFaultCode code = (SOAPFaultCode) iteratorInFault.next();
+        assertTrue("SOAP 1.2 :- Fault code local name mismatch",
+                   code.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
+                   code.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        Iterator iteratorInCode = code.getChildren();
+
+        iteratorInCode.next();
+        SOAPFaultValue value1 = (SOAPFaultValue) iteratorInCode.next();
+        assertTrue("SOAP 1.2 :- Fault code value local name mismatch",
+                   value1.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_VALUE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
+                   value1.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+        assertTrue("SOAP 1.2 :- Value1 text mismatch",
+                   value1.getText().equals("env:Sender"));
+
+        QName valueQName = value1.getTextAsQName();
+        assertTrue("SOAP 1.2 :- Fault code value's qname local name mismatch",
+                   valueQName.getLocalPart().equals("Sender"));
+
+        assertTrue("SOAP 1.2 :- Fault code value's qname namespace uri 
mismatch",
+                   valueQName.getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+
+        iteratorInCode.next();
+        SOAPFaultSubCode subCode1 = (SOAPFaultSubCode) iteratorInCode.next();
+        assertTrue("SOAP 1.2 :- Fault sub code local name mismatch",
+                   subCode1.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_SUB_CODE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault subcode namespace uri mismatch",
+                   subCode1.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        Iterator iteratorInSubCode1 = subCode1.getChildren();
+
+        iteratorInSubCode1.next();
+        SOAPFaultValue value2 = (SOAPFaultValue) iteratorInSubCode1.next();
+        assertTrue("SOAP 1.2 :- Fault code value local name mismatch",
+                   value2.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_VALUE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
+                   value2.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+        assertTrue("SOAP 1.2 :- Value2 text mismatch",
+                   value2.getText().equals("m:MessageTimeout"));
+
+        iteratorInSubCode1.next();
+        SOAPFaultSubCode subCode2 = (SOAPFaultSubCode) 
iteratorInSubCode1.next();
+        assertTrue("SOAP 1.2 :- Fault sub code local name mismatch",
+                   subCode2.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_SUB_CODE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault subcode namespace uri mismatch",
+                   subCode2.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        Iterator iteratorInSubCode2 = subCode2.getChildren();
+
+        iteratorInSubCode2.next();
+        SOAPFaultValue value3 = (SOAPFaultValue) iteratorInSubCode2.next();
+        assertTrue("SOAP 1.2 :- Fault code value local name mismatch",
+                   value3.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_VALUE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault code namespace uri mismatch",
+                   value3.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+        assertTrue("SOAP 1.2 :- Value2 text mismatch",
+                   value3.getText().equals("m:MessageTimeout"));
+
+        iteratorInFault.next();
+        SOAPFaultReason reason = (SOAPFaultReason) iteratorInFault.next();
+        assertTrue("SOAP 1.2 :- Fault reason local name mismatch",
+                   reason.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault reason namespace uri mismatch",
+                   reason.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        Iterator iteratorInReason = reason.getChildren();
+
+        iteratorInReason.next();
+        SOAPFaultText text = (SOAPFaultText) iteratorInReason.next();
+        assertTrue("SOAP 1.2 :- Fault text local name mismatch",
+                   text.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_TEXT_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Text namespace uri mismatch",
+                   text.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+        assertTrue("SOAP 1.2 :- Text value mismatch",
+                   text.getText().equals("Sender Timeout"));
+
+        iteratorInFault.next();
+        SOAPFaultNode node = (SOAPFaultNode) iteratorInFault.next();
+        assertTrue("SOAP 1.2 :- Fault node local name mismatch",
+                   node.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_NODE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault node namespace uri mismatch",
+                   node.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+        assertTrue("SOAP 1.2 :- Node value mismatch",
+                   node.getText().trim().equals(
+                           
"http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver";));
+
+        iteratorInFault.next();
+        SOAPFaultRole role = (SOAPFaultRole) iteratorInFault.next();
+        assertTrue("SOAP 1.2 :- Fault role local name mismatch",
+                   role.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_ROLE_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault role namespace uri mismatch",
+                   role.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+        assertTrue("SOAP 1.2 :- Role value mismatch",
+                   role.getText().trim().equals("ultimateReceiver"));
+
+        iteratorInFault.next();
+        SOAPFaultDetail detail = (SOAPFaultDetail) iteratorInFault.next();
+        assertTrue("SOAP 1.2 :- Fault detail local name mismatch",
+                   detail.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Fault detail namespace uri mismatch",
+                   detail.getNamespace().getNamespaceURI().equals(
+                           SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        assertTrue("SOAP 1.2 :- Text in detail mismatch",
+                   detail.getText().trim().equals("Details of error"));
+
+        Iterator iteratorInDetail = detail.getChildren();
+
+        iteratorInDetail.next();
+        OMElement element1 = (OMElement) iteratorInDetail.next();
+        assertTrue("SOAP 1.2 :- MaxTime element mismatch",
+                   element1.getLocalName().equals("MaxTime"));
+        assertTrue("SOAP 1.2 :- MaxTime element namespace mismatch",
+                   element1.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+        assertTrue("SOAP 1.2 :- Text value in MaxTime element mismatch",
+                   element1.getText().trim().equals("P5M"));
+
+        Iterator attributeIterator = element1.getAllAttributes();
+        OMAttribute attributeInMaxTime = (OMAttribute) 
attributeIterator.next();
+        assertTrue("SOAP 1.2 :- Attribute local name mismatch",
+                   attributeInMaxTime.getLocalName().equals("detail"));
+        assertTrue("SOAP 1.2 :- Attribute namespace mismatch",
+                   attributeInMaxTime.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+        assertTrue("SOAP 1.2 :- Attribute value mismatch",
+                   attributeInMaxTime.getAttributeValue().trim().equals("This 
is only a test"));
+
+        iteratorInDetail.next();
+        OMElement element2 = (OMElement) iteratorInDetail.next();
+        assertTrue("SOAP 1.2 :- AveTime element mismatch",
+                   element2.getLocalName().equals("AveTime"));
+        assertTrue("SOAP 1.2 :- AveTime element namespace mismatch",
+                   element2.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+
+        Iterator iteratorInAveTimeElement = element2.getChildren();
+
+        iteratorInAveTimeElement.next();
+        OMElement element21 = (OMElement) iteratorInAveTimeElement.next();
+        assertTrue("SOAP 1.2 :- Time element mismatch",
+                   element21.getLocalName().equals("Time"));
+        assertTrue("SOAP 1.2 :- Time element namespace mismatch",
+                   element21.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+        assertTrue("SOAP 1.2 :- Text value in Time element mismatch",
+                   element21.getText().trim().equals("P3M"));
+
+        XMLStreamReader sopa11Parser = XMLInputFactory.newInstance()
+                .createXMLStreamReader(new StringReader(soap11Message));
+        OMXMLParserWrapper soap11Builder = new 
StAXSOAPModelBuilder(sopa11Parser, null);
+        SOAPEnvelope soap11Envelope = (SOAPEnvelope) 
soap11Builder.getDocumentElement();
 //            soap11Envelope.build();
 //            writer = 
XMLOutputFactory.newInstance().createXMLStreamWriter(System.out);
 //            soap11Envelope.internalSerializeAndConsume(writer);
 //                 writer.flush();
 
-            assertTrue("SOAP 1.1 :- envelope local name mismatch",
-                       soap11Envelope.getLocalName().equals(
-                               SOAPConstants.SOAPENVELOPE_LOCAL_NAME));
-            assertTrue("SOAP 1.1 :- envelope namespace uri mismatch",
-                       soap11Envelope.getNamespace().getNamespaceURI().equals(
-                               SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            header = soap11Envelope.getHeader();
-            assertTrue("SOAP 1.1 :- Header local name mismatch",
-                       header.getLocalName().equals(
-                               SOAPConstants.HEADER_LOCAL_NAME));
-            assertTrue("SOAP 1.1 :- Header namespace uri mismatch",
-                       header.getNamespace().getNamespaceURI().equals(
-                               SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            headerBlock = (SOAPHeaderBlock) header.getFirstElement();
-            assertTrue("SOAP 1.1 :- Header block name mismatch",
-                       headerBlock.getLocalName().equals("echoOk"));
-            assertTrue("SOAP 1.1 :- Header block name space uri mismatch",
-                       headerBlock.getNamespace().getNamespaceURI().equals(
-                               "http://example.org/ts-tests";));
-            assertTrue("SOAP 1.1 :- Headaer block text mismatch",
-                       headerBlock.getText().trim().equals("foo"));
-
-            // Attribute iteration is not in any guaranteed order.
-            // Use QNames to get the OMAttributes.
-            QName actorQName = new 
QName(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                         SOAP11Constants.ATTR_ACTOR);
-            mustUnderstandQName = new 
QName(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                            
SOAP11Constants.ATTR_MUSTUNDERSTAND);
-
-            OMAttribute actorAttribute = headerBlock.getAttribute(actorQName);
-            mustUnderstandAttribute = 
headerBlock.getAttribute(mustUnderstandQName);
-
-            assertTrue("SOAP 1.1 :- Mustunderstand attribute not found",
-                       mustUnderstandAttribute != null);
-            assertTrue("SOAP 1.1 :- Mustunderstand value mismatch",
-                       mustUnderstandAttribute.getAttributeValue().equals(
-                               SOAPConstants.ATTR_MUSTUNDERSTAND_1));
-            assertTrue(
-                    "SOAP 1.1 :- Mustunderstand attribute namespace uri 
mismatch",
-                    
mustUnderstandAttribute.getNamespace().getNamespaceURI().equals(
-                            SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            assertTrue("SOAP 1.1 :- Actor attribute name not found",
-                       actorAttribute != null);
-            assertTrue("SOAP 1.1 :- Actor value mismatch",
-                       actorAttribute.getAttributeValue().trim().equals(
-                               "http://schemas.xmlsoap.org/soap/"; +
-                                       SOAP11Constants.ATTR_ACTOR +
-                                       "/" +
-                                       "next"));
-            assertTrue("SOAP 1.1 :- Actor attribute namespace uri mismatch",
-                       actorAttribute.getNamespace().getNamespaceURI().equals(
-                               SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            body = soap11Envelope.getBody();
-            assertTrue("SOAP 1.1 :- Body local name mismatch",
-                       
body.getLocalName().equals(SOAPConstants.BODY_LOCAL_NAME));
-            assertTrue("SOAP 1.1 :- Body namespace uri mismatch",
-                       body.getNamespace().getNamespaceURI().equals(
-                               SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            fault = body.getFault();
-            assertTrue("SOAP 1.1 :- Fault namespace uri mismatch",
-                       fault.getNamespace().getNamespaceURI().equals(
-                               SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
-
-            iteratorInFault = fault.getChildren();
-
-            iteratorInFault.next();
-            code = (SOAPFaultCode) iteratorInFault.next();
-            assertEquals("SOAP Fault code local name mismatch",
-                         code.getLocalName(),
-                         (SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME));
-
-            assertEquals("SOAP 1.1 :- Fault code value mismatch", 
code.getText().trim(),
-                         "env:Sender");
-
-            iteratorInFault.next();
-            reason = (SOAPFaultReason) iteratorInFault.next();
-            assertTrue("SOAP 1.1 :- Fault string local name mismatch",
-                       reason.getLocalName().equals(
-                               SOAP11Constants.SOAP_FAULT_STRING_LOCAL_NAME));
-            assertTrue("SOAP 1.1 :- Fault string value mismatch",
-                       reason.getText().trim().equals("Sender Timeout"));
-
-            iteratorInFault.next();
-            role = (SOAPFaultRole) iteratorInFault.next();
-            assertTrue("SOAP 1.1 :- Fault actor local name mismatch",
-                       role.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_ROLE_LOCAL_NAME));
-            assertTrue("SOAP 1.1 :- Actor value mismatch",
-                       role.getText().trim().equals(
-                               
"http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver";));
-
-            iteratorInFault.next();
-            detail = (SOAPFaultDetail) iteratorInFault.next();
-            assertTrue("SOAP 1.1 :- Fault detail local name mismatch",
-                       detail.getLocalName().equals(
-                               SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Text in detail mismatch",
-                       detail.getText().trim().equals("Details of error"));
-
-            iteratorInDetail = detail.getChildren();
-
-            iteratorInDetail.next();
-            element1 = (OMElement) iteratorInDetail.next();
-            assertTrue("SOAP 1.1 :- MaxTime element mismatch",
-                       element1.getLocalName().equals("MaxTime"));
-            assertTrue("SOAP 1.1 :- MaxTime element namespace mismatch",
-                       element1.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-            assertTrue("SOAP 1.1 :- Text value in MaxTime element mismatch",
-                       element1.getText().trim().equals("P5M"));
-
-            attributeIterator = element1.getAllAttributes();
-            attributeInMaxTime = (OMAttribute) attributeIterator.next();
-            assertTrue("SOAP 1.1 :- Attribute local name mismatch",
-                       attributeInMaxTime.getLocalName().equals("detail"));
-            assertTrue("SOAP 1.1 :- Attribute namespace mismatch",
-                       
attributeInMaxTime.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-            assertTrue("SOAP 1.1 :- Attribute value mismatch",
-                       attributeInMaxTime.getAttributeValue().equals("This is 
only a test"));
-
-            iteratorInDetail.next();
-            element2 = (OMElement) iteratorInDetail.next();
-            assertTrue("SOAP 1.1 :- AveTime element mismatch",
-                       element2.getLocalName().equals("AveTime"));
-            assertTrue("SOAP 1.1 :- AveTime element namespace mismatch",
-                       element2.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-
-            iteratorInAveTimeElement = element2.getChildren();
-
-            iteratorInAveTimeElement.next();
-            element21 = (OMElement) iteratorInAveTimeElement.next();
-            assertTrue("SOAP 1.1 :- Time element mismatch",
-                       element21.getLocalName().equals("Time"));
-            assertTrue("SOAP 1.1 :- Time element namespace mismatch",
-                       element21.getNamespace().getNamespaceURI().equals(
-                               "http:www.sample.org"));
-            assertTrue("SOAP 1.1 :- Text value in Time element mismatch",
-                       element21.getText().trim().equals("P3M"));
-
-            iteratorInFault.next();
-            OMElement testElement = (OMElement) iteratorInFault.next();
-            assertTrue("SOAP 1.1 :- Test element mismatch",
-                       testElement.getLocalName().equals("Test"));
-            assertTrue("SOAP 1.1 :- Test element namespace mismatch",
-                       testElement.getNamespace().getNamespaceURI().equals(
-                               "http:www.Test.org"));
-
-            OMElement childOfTestElement = testElement.getFirstElement();
-            assertTrue("SOAP 1.1 :- Test element child local name mismatch",
-                       
childOfTestElement.getLocalName().equals("TestElement"));
-            assertTrue("SOAP 1.1 :- Test element child namespace mismatch",
-                       
childOfTestElement.getNamespace().getNamespaceURI().equals(
-                               "http:www.Test.org"));
-            assertTrue("SOAP 1.1 :- Test element child value mismatch",
-                       childOfTestElement.getText().trim().equals("This is 
only a test"));
-
-        } catch (XMLStreamException e) {
-            log.info(e.getMessage());
-            fail("Test failed. Reason -> " + e.getMessage());
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.info(e.getMessage());
-            fail("Test failed. Reason -> " + e.getMessage());
+        assertTrue("SOAP 1.1 :- envelope local name mismatch",
+                   soap11Envelope.getLocalName().equals(
+                           SOAPConstants.SOAPENVELOPE_LOCAL_NAME));
+        assertTrue("SOAP 1.1 :- envelope namespace uri mismatch",
+                   soap11Envelope.getNamespace().getNamespaceURI().equals(
+                           SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        header = soap11Envelope.getHeader();
+        assertTrue("SOAP 1.1 :- Header local name mismatch",
+                   header.getLocalName().equals(
+                           SOAPConstants.HEADER_LOCAL_NAME));
+        assertTrue("SOAP 1.1 :- Header namespace uri mismatch",
+                   header.getNamespace().getNamespaceURI().equals(
+                           SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        headerBlock = (SOAPHeaderBlock) header.getFirstElement();
+        assertTrue("SOAP 1.1 :- Header block name mismatch",
+                   headerBlock.getLocalName().equals("echoOk"));
+        assertTrue("SOAP 1.1 :- Header block name space uri mismatch",
+                   headerBlock.getNamespace().getNamespaceURI().equals(
+                           "http://example.org/ts-tests";));
+        assertTrue("SOAP 1.1 :- Headaer block text mismatch",
+                   headerBlock.getText().trim().equals("foo"));
+
+        // Attribute iteration is not in any guaranteed order.
+        // Use QNames to get the OMAttributes.
+        QName actorQName = new 
QName(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI,
+                                     SOAP11Constants.ATTR_ACTOR);
+        mustUnderstandQName = new 
QName(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI,
+                                        SOAP11Constants.ATTR_MUSTUNDERSTAND);
+
+        OMAttribute actorAttribute = headerBlock.getAttribute(actorQName);
+        mustUnderstandAttribute = 
headerBlock.getAttribute(mustUnderstandQName);
+
+        assertTrue("SOAP 1.1 :- Mustunderstand attribute not found",
+                   mustUnderstandAttribute != null);
+        assertTrue("SOAP 1.1 :- Mustunderstand value mismatch",
+                   mustUnderstandAttribute.getAttributeValue().equals(
+                           SOAPConstants.ATTR_MUSTUNDERSTAND_1));
+        assertTrue(
+                "SOAP 1.1 :- Mustunderstand attribute namespace uri mismatch",
+                
mustUnderstandAttribute.getNamespace().getNamespaceURI().equals(
+                        SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        assertTrue("SOAP 1.1 :- Actor attribute name not found",
+                   actorAttribute != null);
+        assertTrue("SOAP 1.1 :- Actor value mismatch",
+                   actorAttribute.getAttributeValue().trim().equals(
+                           "http://schemas.xmlsoap.org/soap/"; +
+                                   SOAP11Constants.ATTR_ACTOR +
+                                   "/" +
+                                   "next"));
+        assertTrue("SOAP 1.1 :- Actor attribute namespace uri mismatch",
+                   actorAttribute.getNamespace().getNamespaceURI().equals(
+                           SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        body = soap11Envelope.getBody();
+        assertTrue("SOAP 1.1 :- Body local name mismatch",
+                   body.getLocalName().equals(SOAPConstants.BODY_LOCAL_NAME));
+        assertTrue("SOAP 1.1 :- Body namespace uri mismatch",
+                   body.getNamespace().getNamespaceURI().equals(
+                           SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        fault = body.getFault();
+        assertTrue("SOAP 1.1 :- Fault namespace uri mismatch",
+                   fault.getNamespace().getNamespaceURI().equals(
+                           SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
+        iteratorInFault = fault.getChildren();
+
+        iteratorInFault.next();
+        code = (SOAPFaultCode) iteratorInFault.next();
+        assertEquals("SOAP Fault code local name mismatch",
+                     code.getLocalName(),
+                     (SOAP11Constants.SOAP_FAULT_CODE_LOCAL_NAME));
+
+        assertEquals("SOAP 1.1 :- Fault code value mismatch", 
code.getText().trim(),
+                     "env:Sender");
+
+        iteratorInFault.next();
+        reason = (SOAPFaultReason) iteratorInFault.next();
+        assertTrue("SOAP 1.1 :- Fault string local name mismatch",
+                   reason.getLocalName().equals(
+                           SOAP11Constants.SOAP_FAULT_STRING_LOCAL_NAME));
+        assertTrue("SOAP 1.1 :- Fault string value mismatch",
+                   reason.getText().trim().equals("Sender Timeout"));
+
+        iteratorInFault.next();
+        role = (SOAPFaultRole) iteratorInFault.next();
+        assertTrue("SOAP 1.1 :- Fault actor local name mismatch",
+                   role.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_ROLE_LOCAL_NAME));
+        assertTrue("SOAP 1.1 :- Actor value mismatch",
+                   role.getText().trim().equals(
+                           
"http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver";));
+
+        iteratorInFault.next();
+        detail = (SOAPFaultDetail) iteratorInFault.next();
+        assertTrue("SOAP 1.1 :- Fault detail local name mismatch",
+                   detail.getLocalName().equals(
+                           SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME));
+        assertTrue("SOAP 1.2 :- Text in detail mismatch",
+                   detail.getText().trim().equals("Details of error"));
+
+        iteratorInDetail = detail.getChildren();
+
+        iteratorInDetail.next();
+        element1 = (OMElement) iteratorInDetail.next();
+        assertTrue("SOAP 1.1 :- MaxTime element mismatch",
+                   element1.getLocalName().equals("MaxTime"));
+        assertTrue("SOAP 1.1 :- MaxTime element namespace mismatch",
+                   element1.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+        assertTrue("SOAP 1.1 :- Text value in MaxTime element mismatch",
+                   element1.getText().trim().equals("P5M"));
+
+        attributeIterator = element1.getAllAttributes();
+        attributeInMaxTime = (OMAttribute) attributeIterator.next();
+        assertTrue("SOAP 1.1 :- Attribute local name mismatch",
+                   attributeInMaxTime.getLocalName().equals("detail"));
+        assertTrue("SOAP 1.1 :- Attribute namespace mismatch",
+                   attributeInMaxTime.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+        assertTrue("SOAP 1.1 :- Attribute value mismatch",
+                   attributeInMaxTime.getAttributeValue().equals("This is only 
a test"));
+
+        iteratorInDetail.next();
+        element2 = (OMElement) iteratorInDetail.next();
+        assertTrue("SOAP 1.1 :- AveTime element mismatch",
+                   element2.getLocalName().equals("AveTime"));
+        assertTrue("SOAP 1.1 :- AveTime element namespace mismatch",
+                   element2.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+
+        iteratorInAveTimeElement = element2.getChildren();
+
+        iteratorInAveTimeElement.next();
+        element21 = (OMElement) iteratorInAveTimeElement.next();
+        assertTrue("SOAP 1.1 :- Time element mismatch",
+                   element21.getLocalName().equals("Time"));
+        assertTrue("SOAP 1.1 :- Time element namespace mismatch",
+                   element21.getNamespace().getNamespaceURI().equals(
+                           "http:www.sample.org"));
+        assertTrue("SOAP 1.1 :- Text value in Time element mismatch",
+                   element21.getText().trim().equals("P3M"));
+
+        iteratorInFault.next();
+        OMElement testElement = (OMElement) iteratorInFault.next();
+        assertTrue("SOAP 1.1 :- Test element mismatch",
+                   testElement.getLocalName().equals("Test"));
+        assertTrue("SOAP 1.1 :- Test element namespace mismatch",
+                   testElement.getNamespace().getNamespaceURI().equals(
+                           "http:www.Test.org"));
+
+        OMElement childOfTestElement = testElement.getFirstElement();
+        assertTrue("SOAP 1.1 :- Test element child local name mismatch",
+                   childOfTestElement.getLocalName().equals("TestElement"));
+        assertTrue("SOAP 1.1 :- Test element child namespace mismatch",
+                   childOfTestElement.getNamespace().getNamespaceURI().equals(
+                           "http:www.Test.org"));
+        assertTrue("SOAP 1.1 :- Test element child value mismatch",
+                   childOfTestElement.getText().trim().equals("This is only a 
test"));
+    }
 
+    /**
+     * Test a couple of malformed envelopes, make sure parsing fails correctly.
+     *
+     * @throws Exception
+     */
+    public void testBadEnvelope() throws Exception {
+        String badEnvStart =
+                "<env:Envelope 
xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\";>\n";
+        String badEnvHeader =
+                "       <test:echoOk 
xmlns:test=\"http://example.org/ts-tests\"\n"; +
+                        "                    
env:role=\"http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver\"\n"; +
+                        "                    env:mustUnderstand=\"true\">\n" +
+                        "                       foo\n" +
+                        "       </test:echoOk>\n";
+        String badEnvEnd =
+                "   <env:Body><content/></env:Body>\n" +
+                        "</env:Envelope>";
+        String [] badHeaders = {
+                "env:HeaDER",   // Bad case
+                "Header"        // No namespace
+        };
+
+        for (int i = 0; i < badHeaders.length; i++) {
+            String soap12Message = badEnvStart + "<" + badHeaders[i] + ">\n" +
+                    badEnvHeader + "</" + badHeaders[i] + ">\n" +
+                    badEnvEnd;
+            XMLStreamReader soap12Parser = XMLInputFactory.newInstance()
+                    .createXMLStreamReader(new StringReader(soap12Message));
+            StAXSOAPModelBuilder soap12Builder = new 
StAXSOAPModelBuilder(soap12Parser, null);
+            SOAPEnvelope soap12Envelope = (SOAPEnvelope) 
soap12Builder.getDocumentElement();
+            try {
+                soap12Envelope.getHeader();
+            } catch (OMException e) {
+                // Good, we failed.  Keep going.
+                continue;
+            }
+            fail("Successfully parsed bad envelope ('" + badHeaders[i] + "')");
         }
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to