Author: chinthaka
Date: Tue Apr 25 23:11:56 2006
New Revision: 397099

URL: http://svn.apache.org/viewcvs?rev=397099&view=rev
Log:
Applying patch given in http://issues.apache.org/jira/browse/WSCOMMONS-8


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

Modified: 
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java
URL: 
http://svn.apache.org/viewcvs/webservices/commons/trunk/modules/axiom/test/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java?rev=397099&r1=397098&r2=397099&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/test/org/apache/axiom/soap/impl/builder/StAXSOAPModelBuilderTest.java
 Tue Apr 25 23:11:56 2006
@@ -1,3 +1,23 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * Copyright 2006 International Business Machines Corp.
+ *       re: JIRA WSCOMMONS-8
+ *       @author: [EMAIL PROTECTED]
+ */
 package org.apache.axiom.soap.impl.builder;
 
 import junit.framework.TestCase;
@@ -23,105 +43,111 @@
 import org.apache.axiom.soap.SOAPHeader;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 
+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;
 
+/**
+ * @author scheu
+ */
 public class StAXSOAPModelBuilderTest extends TestCase {
 
     private Log log = LogFactory.getLog(getClass());
+
     public void setUp() {
 
     }
 
+
     public void testStAXSOAPModelBuilder() {
         String soap12Message =
                 "<env:Envelope 
xmlns:env=\"http://www.w3.org/2003/05/soap-envelope\";>\n" +
-                "   <env:Header>\n" +
-                "       <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" +
-                "   </env:Header>\n" +
-                "   <env:Body>\n" +
-                "       <env:Fault>\n" +
-                "           <env:Code>\n" +
-                "               <env:Value>env:Sender</env:Value>\n" +
-                "               <env:Subcode>\n" +
-                "                   <env:Value>m:MessageTimeout</env:Value>\n" 
+
-                "                   <env:Subcode>\n" +
-                "                       
<env:Value>m:MessageTimeout</env:Value>\n" +
-                "                   </env:Subcode>\n" +
-                "               </env:Subcode>\n" +
-                "           </env:Code>\n" +
-                "           <env:Reason>\n" +
-                "               <env:Text>Sender Timeout</env:Text>\n" +
-                "           </env:Reason>\n" +
-                "           <env:Node>\n" +
-                "               
http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver\n"; +
-                "           </env:Node>\n" +
-                "           <env:Role>\n" +
-                "               ultimateReceiver\n" +
-                "           </env:Role>\n" +
-                "           <env:Detail xmlns:m=\"http:www.sample.org\">\n" +
-                "               Details of error\n" +
-                "               <m:MaxTime m:detail=\"This is only a 
test\">\n" +
-                "                   P5M\n" +
-                "               </m:MaxTime>\n" +
-                "               <m:AveTime>\n" +
-                "                   <m:Time>\n" +
-                "                       P3M\n" +
-                "                   </m:Time>\n" +
-                "               </m:AveTime>\n" +
-                "           </env:Detail>\n" +
-                "       </env:Fault>\n" +
-                "   </env:Body>\n" +
-                "</env:Envelope>";
+                        "   <env:Header>\n" +
+                        "       <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" +
+                        "   </env:Header>\n" +
+                        "   <env:Body>\n" +
+                        "       <env:Fault>\n" +
+                        "           <env:Code>\n" +
+                        "               <env:Value>env:Sender</env:Value>\n" +
+                        "               <env:Subcode>\n" +
+                        "                   
<env:Value>m:MessageTimeout</env:Value>\n" +
+                        "                   <env:Subcode>\n" +
+                        "                       
<env:Value>m:MessageTimeout</env:Value>\n" +
+                        "                   </env:Subcode>\n" +
+                        "               </env:Subcode>\n" +
+                        "           </env:Code>\n" +
+                        "           <env:Reason>\n" +
+                        "               <env:Text>Sender Timeout</env:Text>\n" 
+
+                        "           </env:Reason>\n" +
+                        "           <env:Node>\n" +
+                        "               
http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver\n"; +
+                        "           </env:Node>\n" +
+                        "           <env:Role>\n" +
+                        "               ultimateReceiver\n" +
+                        "           </env:Role>\n" +
+                        "           <env:Detail 
xmlns:m=\"http:www.sample.org\">\n" +
+                        "               Details of error\n" +
+                        "               <m:MaxTime m:detail=\"This is only a 
test\">\n" +
+                        "                   P5M\n" +
+                        "               </m:MaxTime>\n" +
+                        "               <m:AveTime>\n" +
+                        "                   <m:Time>\n" +
+                        "                       P3M\n" +
+                        "                   </m:Time>\n" +
+                        "               </m:AveTime>\n" +
+                        "           </env:Detail>\n" +
+                        "       </env:Fault>\n" +
+                        "   </env:Body>\n" +
+                        "</env:Envelope>";
 
         String soap11Message =
                 "<?xml version='1.0' ?>" +
-                "<env:Envelope 
xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\";>\n" +
-                "   <env:Header>\n" +
-                "       <test:echoOk 
xmlns:test=\"http://example.org/ts-tests\"\n"; +
-                "                    
env:actor=\"http://schemas.xmlsoap.org/soap/actor/next\"\n"; +
-                "                    env:mustUnderstand=\"1\"" +
-                "       >\n" +
-                "                       foo\n" +
-                "       </test:echoOk>\n" +
-                "   </env:Header>\n" +
-                "   <env:Body>\n" +
-                "       <env:Fault>\n" +
-                "           <env:faultcode>\n" +
-                "               env:Sender\n" +
-                "           </env:faultcode>\n" +
-                "           <env:faultstring>\n" +
-                "               Sender Timeout\n" +
-                "           </env:faultstring>\n" +
-                "           <env:faultactor>\n" +
-                "               
http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver\n"; +
-                "           </env:faultactor>\n" +
-                "           <env:detail xmlns:m=\"http:www.sample.org\">\n" +
-                "               Details of error\n" +
-                "               <m:MaxTime m:detail=\"This is only a 
test\">\n" +
-                "                   P5M\n" +
-                "               </m:MaxTime>\n" +
-                "               <m:AveTime>\n" +
-                "                   <m:Time>\n" +
-                "                       P3M\n" +
-                "                   </m:Time>\n" +
-                "               </m:AveTime>\n" +
-                "           </env:detail>\n" +
-                "           <n:Test xmlns:n=\"http:www.Test.org\">\n" +
-                "               <n:TestElement>\n" +
-                "                   This is only a test\n" +
-                "               </n:TestElement>\n" +
-                "           </n:Test>\n" +
-                "       </env:Fault>\n" +
-                "   </env:Body>\n" +
-                "</env:Envelope>";
+                        "<env:Envelope 
xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\";>\n" +
+                        "   <env:Header>\n" +
+                        "       <test:echoOk 
xmlns:test=\"http://example.org/ts-tests\"\n"; +
+                        "                    
env:actor=\"http://schemas.xmlsoap.org/soap/actor/next\"\n"; +
+                        "                    env:mustUnderstand=\"1\"" +
+                        "       >\n" +
+                        "                       foo\n" +
+                        "       </test:echoOk>\n" +
+                        "   </env:Header>\n" +
+                        "   <env:Body>\n" +
+                        "       <env:Fault>\n" +
+                        "           <faultcode>\n" +
+                        "               env:Sender\n" +
+                        "           </faultcode>\n" +
+                        "           <faultstring>\n" +
+                        "               Sender Timeout\n" +
+                        "           </faultstring>\n" +
+                        "           <faultactor>\n" +
+                        "               
http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver\n"; +
+                        "           </faultactor>\n" +
+                        "           <detail 
xmlns:m=\"http:www.sample.org\">\n" +
+                        "               Details of error\n" +
+                        "               <m:MaxTime m:detail=\"This is only a 
test\">\n" +
+                        "                   P5M\n" +
+                        "               </m:MaxTime>\n" +
+                        "               <m:AveTime>\n" +
+                        "                   <m:Time>\n" +
+                        "                       P3M\n" +
+                        "                   </m:Time>\n" +
+                        "               </m:AveTime>\n" +
+                        "           </detail>\n" +
+                        "           <n:Test xmlns:n=\"http:www.Test.org\">\n" +
+                        "               <n:TestElement>\n" +
+                        "                   This is only a test\n" +
+                        "               </n:TestElement>\n" +
+                        "           </n:Test>\n" +
+                        "       </env:Fault>\n" +
+                        "   </env:Body>\n" +
+                        "</env:Envelope>";
 
 
         try {
@@ -151,36 +177,35 @@
             assertTrue("SOAP 1.2 :- Header block name space uri mismatch",
                     headerBlock.getNamespace().getName().equals(
                             "http://example.org/ts-tests";));
-            assertEquals("SOAP 1.2 :- Header block text 
mismatch",headerBlock.getText().trim(),"foo");
+            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);
 
-            Iterator headerBlockAttributes = headerBlock.getAllAttributes();
-            OMAttribute roleAttribute = (OMAttribute) 
headerBlockAttributes.next();
-            assertTrue("SOAP 1.2 :- Role attribute name mismatch",
-                    roleAttribute.getLocalName().equals(
-                            SOAP12Constants.SOAP_ROLE));
+            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 :- Role attribute namespace uri mismatch",
-                    roleAttribute.getNamespace().getName().equals(
-                            SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+                                    SOAP12Constants.SOAP_ROLE +
+                                    "/" +
+                                    "ultimateReceiver"));
+
+            assertTrue("SOAP 1.2 :- Mustunderstand attribute not found",
+                    mustUnderstandAttribute != null);
 
-            OMAttribute mustUnderstandAttribute = (OMAttribute) 
headerBlockAttributes.next();
-            assertTrue("SOAP 1.2 :- Mustunderstand attribute name mismatch",
-                    mustUnderstandAttribute.getLocalName().equals(
-                            SOAPConstants.ATTR_MUSTUNDERSTAND));
             assertTrue("SOAP 1.2 :- Mustunderstand value mismatch",
                     mustUnderstandAttribute.getAttributeValue().equals(
                             SOAPConstants.ATTR_MUSTUNDERSTAND_TRUE));
-            assertTrue(
-                    "SOAP 1.2 :- Mustunderstand attribute namespace uri 
mismatch",
-                    mustUnderstandAttribute.getNamespace().getName().equals(
-                            SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+
 
             SOAPBody body = soap12Envelope.getBody();
             assertTrue("SOAP 1.2 :- Body local name mismatch",
@@ -397,13 +422,16 @@
             assertTrue("SOAP 1.1 :- Headaer block text mismatch",
                     headerBlock.getText().trim().equals("foo"));
 
-            headerBlockAttributes = headerBlock.getAllAttributes();
+            // 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);
 
-            mustUnderstandAttribute =
-                    (OMAttribute) headerBlockAttributes.next();
-            assertTrue("SOAP 1.1 :- Mustunderstand attribute name mismatch",
-                    mustUnderstandAttribute.getLocalName().equals(
-                            SOAPConstants.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));
@@ -412,16 +440,14 @@
                     mustUnderstandAttribute.getNamespace().getName().equals(
                             SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
 
-            OMAttribute actorAttribute = (OMAttribute) 
headerBlockAttributes.next();
-            assertTrue("SOAP 1.1 :- Actor attribute name mismatch",
-                    actorAttribute.getLocalName().equals(
-                            SOAP11Constants.ATTR_ACTOR));
+            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"));
+                                    SOAP11Constants.ATTR_ACTOR +
+                                    "/" +
+                                    "next"));
             assertTrue("SOAP 1.1 :- Actor attribute namespace uri mismatch",
                     actorAttribute.getNamespace().getName().equals(
                             SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
@@ -446,8 +472,8 @@
                     code.getLocalName(),
                     (SOAP12Constants.SOAP_FAULT_CODE_LOCAL_NAME));
             assertTrue("SOAP 1.1 :- Fault code namespace uri mismatch",
-                    code.getNamespace().getName().equals(
-                            SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+                    code.getNamespace() == null);
+
             assertEquals("SOAP 1.1 :- Fault code value mismatch", 
code.getValue().getText().trim(),
                     "env:Sender");
 
@@ -456,9 +482,8 @@
             assertTrue("SOAP 1.1 :- Fault string local name mismatch",
                     reason.getLocalName().equals(
                             SOAP12Constants.SOAP_FAULT_REASON_LOCAL_NAME));
-            assertTrue("SOAP 1.2 :- Fault string namespace uri mismatch",
-                    reason.getNamespace().getName().equals(
-                            SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+            assertTrue("SOAP 1.1 :- Fault string namespace uri mismatch",
+                    reason.getNamespace() == null);
             assertTrue("SOAP 1.1 :- Fault string value mismatch",
                     reason.getFirstSOAPText().getText().trim().equals("Sender 
Timeout"));
 
@@ -468,8 +493,7 @@
                     role.getLocalName().equals(
                             SOAP12Constants.SOAP_FAULT_ROLE_LOCAL_NAME));
             assertTrue("SOAP 1.1 :- Fault actor namespace uri mismatch",
-                    role.getNamespace().getName().equals(
-                            SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+                    role.getNamespace() == null);
             assertTrue("SOAP 1.1 :- Actor value mismatch",
                     role.getText().trim().equals(
                             
"http://schemas.xmlsoap.org/soap/envelope/actor/ultimateReceiver";));
@@ -480,8 +504,7 @@
                     detail.getLocalName().equals(
                             SOAP12Constants.SOAP_FAULT_DETAIL_LOCAL_NAME));
             assertTrue("SOAP 1.1 :- Fault detail namespace uri mismatch",
-                    detail.getNamespace().getName().equals(
-                            SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI));
+                    detail.getNamespace() == null);
             assertTrue("SOAP 1.2 :- Text in detail mismatch",
                     detail.getText().trim().equals("Details of error"));
 


Reply via email to