You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2011/07/16 13:44:47 UTC

svn commit: r1147402 - in /webservices/commons/trunk/modules/axiom/modules: axiom-api/src/test/java/org/apache/axiom/om/ axiom-testsuite/src/main/java/org/apache/axiom/ts/ axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/

Author: veithen
Date: Sat Jul 16 11:44:44 2011
New Revision: 1147402

URL: http://svn.apache.org/viewvc?rev=1147402&view=rev
Log:
AXIOM-311: Refactored some test cases related to namespace declarations.

Added:
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringGrandParentsDefaultNSWithPrefix.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringParentsDefaultNSWithPrefix.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace1.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace2.java   (with props)
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestMultipleDefaultNS.java   (with props)
Modified:
    webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestCase.java
    webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/OMTestSuiteBuilder.java

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java?rev=1147402&r1=1147401&r2=1147402&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/test/java/org/apache/axiom/om/OMElementTestBase.java Sat Jul 16 11:44:44 2011
@@ -19,12 +19,10 @@
 
 package org.apache.axiom.om;
 
-import java.io.ByteArrayInputStream;
 import java.util.Iterator;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamConstants;
-import javax.xml.stream.XMLStreamException;
 
 import org.apache.axiom.om.util.AXIOMUtil;
 
@@ -97,139 +95,4 @@ public abstract class OMElementTestBase 
         assertEquals("urn:a", ns.getNamespaceURI());
         root.close(false);
     }
-    
-    private int getNumberOfOccurrences(String xml, String pattern) {
-        int index = -1;
-        int count = 0;
-        while ((index = xml.indexOf(pattern, index + 1)) != -1) {
-            count++;
-        }
-
-        return count;
-    }
-
-    public void testDeclareDefaultNamespace1() throws XMLStreamException {
-
-        /**
-         * <RootElement xmlns="http://one.org">
-         *   <ns2:ChildElementOne xmlns:ns2="http://ws.apache.org/axis2" xmlns="http://two.org">
-         *      <ChildElementTwo xmlns="http://one.org" />
-         *   </ns2:ChildElementOne>
-         * </RootElement>
-         */
-
-        OMFactory omFac = omMetaFactory.getOMFactory();
-
-        OMElement documentElement = omFac.createOMElement("RootElement", null);
-        documentElement.declareDefaultNamespace("http://one.org");
-
-        OMNamespace ns = omFac.createOMNamespace("http://ws.apache.org/axis2", "ns2");
-        OMElement childOne = omFac.createOMElement("ChildElementOne", ns, documentElement);
-        childOne.declareDefaultNamespace("http://two.org");
-
-        OMElement childTwo = omFac.createOMElement("ChildElementTwo", null, childOne);
-        childTwo.declareDefaultNamespace("http://one.org");
-
-
-        assertEquals(2, getNumberOfOccurrences(documentElement.toStringWithConsume(),
-                "xmlns=\"http://one.org\""));
-    }
-
-    public void testDeclareDefaultNamespace2() throws XMLStreamException {
-
-        /**
-         * <RootElement xmlns:ns1="http://one.org" xmlns:ns2="http://one.org">
-         *   <ns2:ChildElementOne xmlns="http://one.org">
-         *      <ns2:ChildElementTwo />
-         *   </ns2:ChildElementOne>
-         * </RootElement>
-         */
-
-        OMFactory omFac = omMetaFactory.getOMFactory();
-
-        OMElement documentElement = omFac.createOMElement("RootElement", null);
-        OMNamespace ns1 = documentElement.declareNamespace("http://one.org", "ns1");
-        OMNamespace ns2 = documentElement.declareNamespace("http://one.org", "ns2");
-
-        OMElement childOne = omFac.createOMElement("ChildElementOne", ns2, documentElement);
-        childOne.declareDefaultNamespace("http://one.org");
-
-        OMElement childTwo = omFac.createOMElement("ChildElementTwo", ns1, childOne);
-
-        assertEquals(1, getNumberOfOccurrences(documentElement.toStringWithConsume(),
-                "xmlns:ns2=\"http://one.org\""));
-    }
-
-    public void testMultipleDefaultNS() {
-        OMFactory omFactory = omMetaFactory.getOMFactory();
-        OMNamespace defaultNS1 = omFactory.createOMNamespace("http://defaultNS1.org", null);
-        OMNamespace defaultNS2 = omFactory.createOMNamespace("http://defaultNS2.org", null);
-
-        OMElement omElementOne = omFactory.createOMElement("DocumentElement", null);
-        omElementOne.declareDefaultNamespace("http://defaultNS1.org");
-        OMElement omElementOneChild = omFactory.createOMElement("ChildOne", null, omElementOne);
-
-
-        OMElement omElementTwo = omFactory.createOMElement("Foo", defaultNS2, omElementOne);
-        omElementTwo.declareDefaultNamespace("http://defaultNS2.org");
-        OMElement omElementTwoChild = omFactory.createOMElement("ChildOne", null, omElementTwo);
-
-        OMElement omElementThree = omFactory.createOMElement("Bar", defaultNS1, omElementTwo);
-        omElementThree.declareDefaultNamespace("http://defaultNS1.org");
-
-        OMNamespace omElementOneChildNS = omElementOneChild.getNamespace();
-        OMNamespace omElementTwoChildNS = omElementTwoChild.getNamespace();
-        // TODO: LLOM's and DOOM's behaviors are slightly different here; need to check if both are allowed
-        assertTrue(omElementOneChildNS == null || "".equals(omElementOneChildNS.getNamespaceURI()));
-        assertTrue(omElementTwoChildNS == null || "".equals(omElementTwoChildNS.getNamespaceURI()));
-    }
-
-    public void testChildReDeclaringParentsDefaultNSWithPrefix() throws Exception {
-        OMFactory fac = omMetaFactory.getOMFactory();
-        OMElement elem = fac.createOMElement("RequestSecurityToken", null);
-        elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust");
-        fac.createOMElement(new QName("TokenType"), elem).setText("test");
-        fac.createOMElement(new QName("RequestType"), elem).setText("test1");
-
-        fac.createOMElement(
-                new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"),
-                elem);
-        String xml = elem.toString();
-
-        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(omMetaFactory.getOMFactory(),
-                new ByteArrayInputStream(xml.getBytes()));
-
-        builder.getDocumentElement().build();
-
-        // The StAX implementation may or may not have a trailing blank in the tag
-        String assertText1 =
-                "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\" />";
-        String assertText2 =
-                "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"/>";
-        String assertText3 =
-                "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"></wst:Entropy>";
-
-        assertTrue((xml.indexOf(assertText1) != -1) ||
-                (xml.indexOf(assertText2) != -1) ||
-                (xml.indexOf(assertText3) != -1));
-    }
-
-    public void testChildReDeclaringGrandParentsDefaultNSWithPrefix() {
-        OMFactory fac = omMetaFactory.getOMFactory();
-        OMElement elem = fac.createOMElement("RequestSecurityToken", null);
-        elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust");
-        fac.createOMElement(new QName("TokenType"), elem).setText("test");
-        fac.createOMElement(new QName("RequestType"), elem).setText("test1");
-
-        OMElement entElem = fac.createOMElement(
-                new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"),
-                elem);
-        OMElement binSecElem = fac.createOMElement(
-                new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Binarysecret", "wst"),
-                entElem);
-        binSecElem.setText("secret value");
-        String xml = elem.toString();
-        assertTrue("Binarysecret element should have \'wst\' ns prefix",
-                   xml.indexOf("<wst:Binarysecret") != -1);
-    }
 }

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestCase.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestCase.java?rev=1147402&r1=1147401&r2=1147402&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestCase.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/AxiomTestCase.java Sat Jul 16 11:44:44 2011
@@ -66,4 +66,14 @@ public abstract class AxiomTestCase exte
 
         return childCount;
     }
+
+    protected static int getNumberOfOccurrences(String xml, String pattern) {
+        int index = -1;
+        int count = 0;
+        while ((index = xml.indexOf(pattern, index + 1)) != -1) {
+            count++;
+        }
+
+        return count;
+    }
 }

Modified: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/OMTestSuiteBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/OMTestSuiteBuilder.java?rev=1147402&r1=1147401&r2=1147402&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/OMTestSuiteBuilder.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/OMTestSuiteBuilder.java Sat Jul 16 11:44:44 2011
@@ -78,6 +78,10 @@ public class OMTestSuiteBuilder extends 
         addTest(new org.apache.axiom.ts.om.element.TestAddAttributeWithoutNamespace(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestAddChild(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestAddChildWithParent(metaFactory));
+        addTest(new org.apache.axiom.ts.om.element.TestChildReDeclaringGrandParentsDefaultNSWithPrefix(metaFactory));
+        addTest(new org.apache.axiom.ts.om.element.TestChildReDeclaringParentsDefaultNSWithPrefix(metaFactory));
+        addTest(new org.apache.axiom.ts.om.element.TestDeclareDefaultNamespace1(metaFactory));
+        addTest(new org.apache.axiom.ts.om.element.TestDeclareDefaultNamespace2(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestDeclareNamespace1(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestGetAllAttributes1(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestGetAllAttributes2(metaFactory));
@@ -116,6 +120,7 @@ public class OMTestSuiteBuilder extends 
         addTest(new org.apache.axiom.ts.om.element.TestGetXMLStreamReaderOnNonRootElement(metaFactory, false));
         addTest(new org.apache.axiom.ts.om.element.TestGetXMLStreamReaderWithOMSourcedElementDescendant(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestIsCompleteAfterAddingIncompleteChild(metaFactory));
+        addTest(new org.apache.axiom.ts.om.element.TestMultipleDefaultNS(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestResolveQNameWithDefaultNamespace(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestResolveQNameWithNonDefaultNamespace(metaFactory));
         addTest(new org.apache.axiom.ts.om.element.TestResolveQNameWithoutNamespace(metaFactory));

Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringGrandParentsDefaultNSWithPrefix.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringGrandParentsDefaultNSWithPrefix.java?rev=1147402&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringGrandParentsDefaultNSWithPrefix.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringGrandParentsDefaultNSWithPrefix.java Sat Jul 16 11:44:44 2011
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.axiom.ts.om.element;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.ts.AxiomTestCase;
+
+public class TestChildReDeclaringGrandParentsDefaultNSWithPrefix extends AxiomTestCase {
+    public TestChildReDeclaringGrandParentsDefaultNSWithPrefix(OMMetaFactory metaFactory) {
+        super(metaFactory);
+    }
+
+    protected void runTest() throws Throwable {
+        OMFactory fac = metaFactory.getOMFactory();
+        OMElement elem = fac.createOMElement("RequestSecurityToken", null);
+        elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust");
+        fac.createOMElement(new QName("TokenType"), elem).setText("test");
+        fac.createOMElement(new QName("RequestType"), elem).setText("test1");
+
+        OMElement entElem = fac.createOMElement(
+                new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"),
+                elem);
+        OMElement binSecElem = fac.createOMElement(
+                new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Binarysecret", "wst"),
+                entElem);
+        binSecElem.setText("secret value");
+        String xml = elem.toString();
+        assertTrue("Binarysecret element should have \'wst\' ns prefix",
+                   xml.indexOf("<wst:Binarysecret") != -1);
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringGrandParentsDefaultNSWithPrefix.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringParentsDefaultNSWithPrefix.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringParentsDefaultNSWithPrefix.java?rev=1147402&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringParentsDefaultNSWithPrefix.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringParentsDefaultNSWithPrefix.java Sat Jul 16 11:44:44 2011
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.axiom.ts.om.element;
+
+import java.io.ByteArrayInputStream;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axiom.ts.AxiomTestCase;
+
+public class TestChildReDeclaringParentsDefaultNSWithPrefix extends AxiomTestCase {
+    public TestChildReDeclaringParentsDefaultNSWithPrefix(OMMetaFactory metaFactory) {
+        super(metaFactory);
+    }
+
+    protected void runTest() throws Throwable {
+        OMFactory fac = metaFactory.getOMFactory();
+        OMElement elem = fac.createOMElement("RequestSecurityToken", null);
+        elem.declareDefaultNamespace("http://schemas.xmlsoap.org/ws/2005/02/trust");
+        fac.createOMElement(new QName("TokenType"), elem).setText("test");
+        fac.createOMElement(new QName("RequestType"), elem).setText("test1");
+
+        fac.createOMElement(
+                new QName("http://schemas.xmlsoap.org/ws/2005/02/trust", "Entropy", "wst"),
+                elem);
+        String xml = elem.toString();
+
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(metaFactory.getOMFactory(),
+                new ByteArrayInputStream(xml.getBytes()));
+
+        builder.getDocumentElement().build();
+
+        // The StAX implementation may or may not have a trailing blank in the tag
+        String assertText1 =
+                "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\" />";
+        String assertText2 =
+                "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"/>";
+        String assertText3 =
+                "<wst:Entropy xmlns:wst=\"http://schemas.xmlsoap.org/ws/2005/02/trust\"></wst:Entropy>";
+
+        assertTrue((xml.indexOf(assertText1) != -1) ||
+                (xml.indexOf(assertText2) != -1) ||
+                (xml.indexOf(assertText3) != -1));
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestChildReDeclaringParentsDefaultNSWithPrefix.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace1.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace1.java?rev=1147402&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace1.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace1.java Sat Jul 16 11:44:44 2011
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.axiom.ts.om.element;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.ts.AxiomTestCase;
+
+public class TestDeclareDefaultNamespace1 extends AxiomTestCase {
+    public TestDeclareDefaultNamespace1(OMMetaFactory metaFactory) {
+        super(metaFactory);
+    }
+
+    protected void runTest() throws Throwable {
+        /**
+         * <RootElement xmlns="http://one.org">
+         *   <ns2:ChildElementOne xmlns:ns2="http://ws.apache.org/axis2" xmlns="http://two.org">
+         *      <ChildElementTwo xmlns="http://one.org" />
+         *   </ns2:ChildElementOne>
+         * </RootElement>
+         */
+
+        OMFactory omFac = metaFactory.getOMFactory();
+
+        OMElement documentElement = omFac.createOMElement("RootElement", null);
+        documentElement.declareDefaultNamespace("http://one.org");
+
+        OMNamespace ns = omFac.createOMNamespace("http://ws.apache.org/axis2", "ns2");
+        OMElement childOne = omFac.createOMElement("ChildElementOne", ns, documentElement);
+        childOne.declareDefaultNamespace("http://two.org");
+
+        OMElement childTwo = omFac.createOMElement("ChildElementTwo", null, childOne);
+        childTwo.declareDefaultNamespace("http://one.org");
+
+
+        assertEquals(2, getNumberOfOccurrences(documentElement.toStringWithConsume(),
+                "xmlns=\"http://one.org\""));
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace1.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace2.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace2.java?rev=1147402&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace2.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace2.java Sat Jul 16 11:44:44 2011
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.axiom.ts.om.element;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.ts.AxiomTestCase;
+
+public class TestDeclareDefaultNamespace2 extends AxiomTestCase {
+    public TestDeclareDefaultNamespace2(OMMetaFactory metaFactory) {
+        super(metaFactory);
+    }
+
+    protected void runTest() throws Throwable {
+        /**
+         * <RootElement xmlns:ns1="http://one.org" xmlns:ns2="http://one.org">
+         *   <ns2:ChildElementOne xmlns="http://one.org">
+         *      <ns2:ChildElementTwo />
+         *   </ns2:ChildElementOne>
+         * </RootElement>
+         */
+
+        OMFactory omFac = metaFactory.getOMFactory();
+
+        OMElement documentElement = omFac.createOMElement("RootElement", null);
+        OMNamespace ns1 = documentElement.declareNamespace("http://one.org", "ns1");
+        OMNamespace ns2 = documentElement.declareNamespace("http://one.org", "ns2");
+
+        OMElement childOne = omFac.createOMElement("ChildElementOne", ns2, documentElement);
+        childOne.declareDefaultNamespace("http://one.org");
+
+        OMElement childTwo = omFac.createOMElement("ChildElementTwo", ns1, childOne);
+
+        assertEquals(1, getNumberOfOccurrences(documentElement.toStringWithConsume(),
+                "xmlns:ns2=\"http://one.org\""));
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestDeclareDefaultNamespace2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestMultipleDefaultNS.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestMultipleDefaultNS.java?rev=1147402&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestMultipleDefaultNS.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestMultipleDefaultNS.java Sat Jul 16 11:44:44 2011
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package org.apache.axiom.ts.om.element;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.ts.AxiomTestCase;
+
+public class TestMultipleDefaultNS extends AxiomTestCase {
+    public TestMultipleDefaultNS(OMMetaFactory metaFactory) {
+        super(metaFactory);
+    }
+
+    protected void runTest() throws Throwable {
+        OMFactory omFactory = metaFactory.getOMFactory();
+        OMNamespace defaultNS1 = omFactory.createOMNamespace("http://defaultNS1.org", null);
+        OMNamespace defaultNS2 = omFactory.createOMNamespace("http://defaultNS2.org", null);
+
+        OMElement omElementOne = omFactory.createOMElement("DocumentElement", null);
+        omElementOne.declareDefaultNamespace("http://defaultNS1.org");
+        OMElement omElementOneChild = omFactory.createOMElement("ChildOne", null, omElementOne);
+
+
+        OMElement omElementTwo = omFactory.createOMElement("Foo", defaultNS2, omElementOne);
+        omElementTwo.declareDefaultNamespace("http://defaultNS2.org");
+        OMElement omElementTwoChild = omFactory.createOMElement("ChildOne", null, omElementTwo);
+
+        OMElement omElementThree = omFactory.createOMElement("Bar", defaultNS1, omElementTwo);
+        omElementThree.declareDefaultNamespace("http://defaultNS1.org");
+
+        OMNamespace omElementOneChildNS = omElementOneChild.getNamespace();
+        OMNamespace omElementTwoChildNS = omElementTwoChild.getNamespace();
+        // TODO: LLOM's and DOOM's behaviors are slightly different here; need to check if both are allowed
+        assertTrue(omElementOneChildNS == null || "".equals(omElementOneChildNS.getNamespaceURI()));
+        assertTrue(omElementTwoChildNS == null || "".equals(omElementTwoChildNS.getNamespaceURI()));
+    }
+}

Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestMultipleDefaultNS.java
------------------------------------------------------------------------------
    svn:eol-style = native