Author: veithen
Date: Wed Dec 2 19:50:57 2015
New Revision: 1717671
URL: http://svn.apache.org/viewvc?rev=1717671&view=rev
Log:
Increase test coverage and add Javadoc.
Modified:
webservices/axiom/branches/datatypes/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java
webservices/axiom/branches/datatypes/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java
Modified:
webservices/axiom/branches/datatypes/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/branches/datatypes/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java?rev=1717671&r1=1717670&r2=1717671&view=diff
==============================================================================
---
webservices/axiom/branches/datatypes/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java
(original)
+++
webservices/axiom/branches/datatypes/datatypes/src/main/java/org/apache/axiom/datatype/ContextAccessor.java
Wed Dec 2 19:50:57 2015
@@ -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);
}
Modified:
webservices/axiom/branches/datatypes/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/branches/datatypes/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java?rev=1717671&r1=1717670&r2=1717671&view=diff
==============================================================================
---
webservices/axiom/branches/datatypes/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java
(original)
+++
webservices/axiom/branches/datatypes/datatypes/src/test/java/org/apache/axiom/datatype/helper/dom/DOMHelperTest.java
Wed Dec 2 19:50:57 2015
@@ -20,6 +20,8 @@ package org.apache.axiom.datatype.helper
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();
+ }
}