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/12 21:54:47 UTC
svn commit: r1145742 - in /webservices/commons/trunk/modules/axiom/modules:
axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/
axiom-tests/src/test/java/org/apache/axiom/om/impl/traverse/
axiom-testsuite/src/main/java/org/apache/axiom/ts/ axiom-test...
Author: veithen
Date: Tue Jul 12 19:54:47 2011
New Revision: 1145742
URL: http://svn.apache.org/viewvc?rev=1145742&view=rev
Log:
AXIOM-311: Refactored OMChildrenWithQNameIteratorTest.
Added:
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName2.java (with props)
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName3.java (with props)
webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName4.java (with props)
Removed:
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/traverse/OMChildrenWithQNameIteratorTest.java
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.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-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java?rev=1145742&r1=1145741&r2=1145742&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMImplementationTest.java Tue Jul 12 19:54:47 2011
@@ -25,6 +25,7 @@ import org.apache.axiom.om.impl.dom.fact
import org.apache.axiom.ts.OMTestSuiteBuilder;
import org.apache.axiom.ts.om.builder.TestCreateOMBuilderFromDOMSource;
import org.apache.axiom.ts.om.container.TestSerialize;
+import org.apache.axiom.ts.om.element.TestGetChildrenWithName4;
import org.apache.axiom.ts.om.element.TestGetXMLStreamReaderCDATAEventFromElement;
import org.apache.axiom.ts.om.element.TestGetXMLStreamReaderWithOMSourcedElementDescendant;
import org.apache.axiom.ts.om.element.TestSetTextQName;
@@ -72,6 +73,9 @@ public class OMImplementationTest extend
// TODO: suspecting Woodstox bug here
builder.exclude(TestCreateOMBuilderFromDOMSource.class, "(file=spaces.xml)");
+ // TODO: investigate why this is not working with DOOM
+ builder.exclude(TestGetChildrenWithName4.class);
+
return builder.build();
}
}
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=1145742&r1=1145741&r2=1145742&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 Tue Jul 12 19:54:47 2011
@@ -20,6 +20,7 @@ package org.apache.axiom.ts;
import java.util.Dictionary;
import java.util.Hashtable;
+import java.util.Iterator;
import org.apache.axiom.om.OMContainer;
import org.apache.axiom.om.OMMetaFactory;
@@ -55,4 +56,14 @@ public abstract class AxiomTestCase exte
}
assertTrue(isConsumed);
}
+
+ protected static int getChildrenCount(Iterator childrenIter) {
+ int childCount = 0;
+ while (childrenIter.hasNext()) {
+ childrenIter.next();
+ childCount++;
+ }
+
+ return childCount;
+ }
}
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=1145742&r1=1145741&r2=1145742&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 Tue Jul 12 19:54:47 2011
@@ -95,6 +95,9 @@ public class OMTestSuiteBuilder extends
addTest(new org.apache.axiom.ts.om.element.TestGetChildrenRemove4(metaFactory));
addTest(new org.apache.axiom.ts.om.element.TestGetChildrenWithLocalName(metaFactory));
addTest(new org.apache.axiom.ts.om.element.TestGetChildrenWithName(metaFactory));
+ addTest(new org.apache.axiom.ts.om.element.TestGetChildrenWithName2(metaFactory));
+ addTest(new org.apache.axiom.ts.om.element.TestGetChildrenWithName3(metaFactory));
+ addTest(new org.apache.axiom.ts.om.element.TestGetChildrenWithName4(metaFactory));
addTest(new org.apache.axiom.ts.om.element.TestGetFirstChildWithName(metaFactory));
addTest(new org.apache.axiom.ts.om.element.TestGetFirstChildWithNameOnIncompleteElement(metaFactory));
addTest(new org.apache.axiom.ts.om.element.TestGetNamespaceURI(metaFactory));
Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName2.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName2.java?rev=1145742&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName2.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName2.java Tue Jul 12 19:54:47 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 java.util.Iterator;
+
+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.OMNamespace;
+import org.apache.axiom.om.OMText;
+import org.apache.axiom.ts.AxiomTestCase;
+
+public class TestGetChildrenWithName2 extends AxiomTestCase {
+ public TestGetChildrenWithName2(OMMetaFactory metaFactory) {
+ super(metaFactory);
+ }
+
+ protected void runTest() throws Throwable {
+ OMFactory factory = metaFactory.getOMFactory();
+ OMNamespace testNamespace = factory.createOMNamespace("http://test.ws.org", "test");
+ OMElement documentElement = factory.createOMElement("Employees", testNamespace);
+ documentElement.declareNamespace(testNamespace);
+ OMText txt = factory.createOMText(documentElement, " ");
+ OMElement e = factory.createOMElement("Employee", testNamespace, documentElement);
+ e.setText("Apache Developer");
+
+ Iterator childrenIter = documentElement.getChildrenWithName(new QName("http://test.ws.org", "Employee", "test"));
+
+ int childCount = getChildrenCount(childrenIter);
+ assertEquals("Iterator must return 1 child with the given qname", childCount, 1);
+ }
+}
Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName2.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName3.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName3.java?rev=1145742&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName3.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName3.java Tue Jul 12 19:54:47 2011
@@ -0,0 +1,53 @@
+/*
+ * 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.util.Iterator;
+
+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.OMNamespace;
+import org.apache.axiom.om.OMText;
+import org.apache.axiom.ts.AxiomTestCase;
+
+/**
+ * Regression test for <a href="https://issues.apache.org/jira/browse/AXIOM-166">AXIOM-166</a>.
+ */
+public class TestGetChildrenWithName3 extends AxiomTestCase {
+ public TestGetChildrenWithName3(OMMetaFactory metaFactory) {
+ super(metaFactory);
+ }
+
+ protected void runTest() throws Throwable {
+ OMFactory factory = metaFactory.getOMFactory();
+ OMNamespace testNamespace = factory.createOMNamespace("http://test.ws.org", "test");
+ OMElement documentElement = factory.createOMElement("Employees", testNamespace);
+ documentElement.declareNamespace(testNamespace);
+ OMText txt = factory.createOMText(documentElement, " ");
+ OMElement e = factory.createOMElement("Employee", testNamespace, documentElement);
+ e.setText("Apache Developer");
+
+ Iterator childrenIter = documentElement.getChildrenWithName(new QName("http://test.ws.org", "Employee", "test"));
+ OMElement employee = (OMElement) childrenIter.next(); // should walk past OMText
+ assertEquals("Employee test was incorrect", employee.getText(), "Apache Developer");
+ }
+}
Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName3.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName4.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName4.java?rev=1145742&view=auto
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName4.java (added)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName4.java Tue Jul 12 19:54:47 2011
@@ -0,0 +1,82 @@
+/*
+ * 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.om.OMNamespace;
+import org.apache.axiom.ts.AxiomTestCase;
+
+public class TestGetChildrenWithName4 extends AxiomTestCase {
+ private static final String NS_A = "urn://a";
+ private static final String NS_B = "urn://b";
+ private static final String NS_C = "urn://c";
+
+ public TestGetChildrenWithName4(OMMetaFactory metaFactory) {
+ super(metaFactory);
+ }
+
+ protected void runTest() throws Throwable {
+ // Create a document with 2 children, each named "sample" but
+ // have different namespaces.
+ OMFactory factory = metaFactory.getOMFactory();
+ OMNamespace a = factory.createOMNamespace(NS_A, "a");
+ OMNamespace b = factory.createOMNamespace(NS_B, "b");
+
+ OMElement documentElement = factory.createOMElement("Document", a);
+ factory.createOMElement("sample", a, documentElement);
+ factory.createOMElement("sample", b, documentElement);
+
+
+ // Test for fully qualified names
+ QName qName = new QName(NS_A, "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 1);
+ qName = new QName(NS_B, "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 1);
+ qName = new QName(NS_C, "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 0);
+
+ // Test for QName with no namespace.
+ // The original Axiom implementation interpretted this as a wildcard.
+ // In order to not break existing code, this should return 2
+ qName = new QName("", "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 2);
+
+ // Now add an unqualified sample element to the documentElement
+ factory.createOMElement("sample", null, documentElement);
+
+
+ // Repeat the tests
+ qName = new QName(NS_A, "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 1);
+ qName = new QName(NS_B, "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 1);
+ qName = new QName(NS_C, "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 0);
+
+ // Since there actually is an unqualified element child, the most accurate
+ // interpretation of getChildrenWithName should be to return this one
+ // child
+ qName = new QName("", "sample");
+ assertTrue(getChildrenCount(documentElement.getChildrenWithName(qName)) == 1);
+ }
+}
Propchange: webservices/commons/trunk/modules/axiom/modules/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName4.java
------------------------------------------------------------------------------
svn:eol-style = native