You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by dk...@apache.org on 2019/10/31 14:48:53 UTC

[ws-axiom] 16/25: Increase test coverage and add Javadoc.

This is an automated email from the ASF dual-hosted git repository.

dkulp pushed a commit to branch datatypes
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git

commit 9dbd4c2d0970baa7d399114f7c6c6c823cf81481
Author: Andreas Veithen <ve...@apache.org>
AuthorDate: Wed Dec 2 19:50:57 2015 +0000

    Increase test coverage and add Javadoc.
---
 .../org/apache/axiom/datatype/ContextAccessor.java | 18 +++++++++++++++
 .../axiom/datatype/helper/dom/DOMHelperTest.java   | 27 +++++++++++++++++++++-
 2 files changed, 44 insertions(+), 1 deletion(-)

diff --git a/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java b/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java
index a384eb0..4abd1fc 100644
--- a/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java
+++ b/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java
@@ -19,6 +19,24 @@
 package org.apache.axiom.datatype;
 
 public interface ContextAccessor<T,O> {
+    /**
+     * Look up the namespace URI associated to the given prefix.
+     * 
+     * @param contextObject
+     *            The context object passed to
+     *            {@link Type#parse(String, ContextAccessor, Object, Object)} or
+     *            {@link Type#format(Object, ContextAccessor, Object, Object)}.
+     * @param options
+     *            The options passed to {@link Type#parse(String, ContextAccessor, Object, Object)}
+     *            or {@link Type#format(Object, ContextAccessor, Object, Object)}.
+     * @param prefix
+     *            The prefix to look for. If this parameter is the empty string, then the URI of the
+     *            default namespace will be returned.
+     * @return the namespace URI or <code>null</code> if the prefix is not bound; if the prefix is
+     *         the empty string and no default namespace declaration exists, then an empty string is
+     *         returned
+     */
     String lookupNamespaceURI(T contextObject, O options, String prefix);
+    
     String lookupPrefix(T contextObject, O options, String namespaceURI);
 }
diff --git a/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java b/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java
index 75f1f7e..00e994d 100644
--- a/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java
+++ b/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java
@@ -20,6 +20,8 @@ package org.apache.axiom.datatype.helper.dom;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import java.text.ParseException;
+
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilderFactory;
 
@@ -29,9 +31,13 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 public class DOMHelperTest {
+    private static Document newDocument() throws Exception {
+        return DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+    }
+    
     @Test
     public void testGetQNameFromElement() throws Exception {
-        Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
+        Document document = newDocument();
         Element element = document.createElementNS("urn:test", "p:elem");
         element.setTextContent("p:value");
         QName qname = DOMHelper.getValue(element, XSQNameType.INSTANCE);
@@ -39,4 +45,23 @@ public class DOMHelperTest {
         assertThat(qname.getLocalPart()).isEqualTo("value");
         assertThat(qname.getPrefix()).isEqualTo("p");
     }
+    
+    @Test(expected=ParseException.class)
+    public void testGetQNameFromElementUnboundPrefix() throws Exception {
+        Document document = newDocument();
+        Element element = document.createElementNS(null, "test");
+        element.setTextContent("ns:test");
+        DOMHelper.getValue(element, XSQNameType.INSTANCE);
+    }
+    
+    @Test
+    public void testGetQNameFromElementNoDefaultNamespace() throws Exception {
+        Document document = newDocument();
+        Element element = document.createElementNS("urn:test", "p:test");
+        element.setTextContent("value");
+        QName qname = DOMHelper.getValue(element, XSQNameType.INSTANCE);
+        assertThat(qname.getNamespaceURI()).isEmpty();
+        assertThat(qname.getLocalPart()).isEqualTo("value");
+        assertThat(qname.getPrefix()).isEmpty();
+    }
 }