[Practicalxml-commits] SF.net SVN: practicalxml:[37] trunk/src
Brought to you by:
kdgregory
|
From: Auto-Generated S. C. M. <pra...@li...> - 2008-12-01 02:11:14
|
Revision: 37
http://practicalxml.svn.sourceforge.net/practicalxml/?rev=37&view=rev
Author: kdgregory
Date: 2008-12-01 02:11:10 +0000 (Mon, 01 Dec 2008)
Log Message:
-----------
NamespaceResolver, SimpleNamespaceResolver: improve test coverage, fix corner cases
Modified Paths:
--------------
trunk/src/main/java/net/sf/practicalxml/misc/SimpleNamespaceResolver.java
trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java
trunk/src/test/java/net/sf/practicalxml/misc/TestSimpleNamespaceResolver.java
Modified: trunk/src/main/java/net/sf/practicalxml/misc/SimpleNamespaceResolver.java
===================================================================
--- trunk/src/main/java/net/sf/practicalxml/misc/SimpleNamespaceResolver.java 2008-12-01 00:09:30 UTC (rev 36)
+++ trunk/src/main/java/net/sf/practicalxml/misc/SimpleNamespaceResolver.java 2008-12-01 02:11:10 UTC (rev 37)
@@ -23,6 +23,11 @@
public SimpleNamespaceResolver(String prefix, String nsURI)
{
+ if (prefix == null)
+ throw new IllegalArgumentException("prefix may not be null");
+ if (nsURI == null)
+ throw new IllegalArgumentException("nsURI may not be null");
+
_prefix = prefix;
_nsURI = nsURI;
_prefixes = Arrays.asList(prefix);
@@ -48,7 +53,6 @@
return XMLConstants.XML_NS_URI;
else if (XMLConstants.XMLNS_ATTRIBUTE.equals(prefix))
return XMLConstants.XMLNS_ATTRIBUTE_NS_URI;
-
else
return null;
}
@@ -84,7 +88,7 @@
String prefix = getPrefix(nsURI);
if (_prefix.equals(prefix))
return _prefixes.iterator();
- else if (_prefix == null)
+ else if (prefix == null)
return Collections.<String>emptyList().iterator();
else
return Arrays.asList(prefix).iterator();
Modified: trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java
===================================================================
--- trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java 2008-12-01 00:09:30 UTC (rev 36)
+++ trunk/src/test/java/net/sf/practicalxml/misc/TestNamespaceResolver.java 2008-12-01 02:11:10 UTC (rev 37)
@@ -2,6 +2,7 @@
import java.util.Iterator;
import javax.xml.XMLConstants;
+import javax.xml.namespace.NamespaceContext;
import net.sf.practicalxml.AbstractTestCase;
@@ -33,7 +34,7 @@
final String prefix2 = "argle";
final String nsURI2 = "bargle";
- NamespaceResolver resolv = new NamespaceResolver()
+ NamespaceContext resolv = new NamespaceResolver()
.addNamespace(prefix1, nsURI1)
.addNamespace(prefix2, nsURI2);
@@ -59,7 +60,7 @@
final String prefix2 = "argle";
final String nsURI = "bargle";
- NamespaceResolver resolv = new NamespaceResolver()
+ NamespaceContext resolv = new NamespaceResolver()
.addNamespace(prefix1, nsURI)
.addNamespace(prefix2, nsURI);
@@ -75,10 +76,56 @@
}
- public void testStandardMappings() throws Exception
+ public void testUnboundNamespace() throws Exception
{
+ NamespaceContext resolv = new NamespaceResolver();
+
+ assertNull(resolv.getNamespaceURI("argle"));
+ assertNull(resolv.getPrefix("argle"));
+ assertFalse(resolv.getPrefixes("argle").hasNext());
+ }
+
+
+ public void testInvalidNamespace() throws Exception
+ {
NamespaceResolver resolv = new NamespaceResolver();
+ try
+ {
+ resolv.addNamespace(null, "foo");
+ fail("accepted null prefix");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // success
+ }
+
+ try
+ {
+ resolv.addNamespace("foo", null);
+ fail("accepted null nsURI");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // success
+ }
+
+ try
+ {
+ resolv.setDefaultNamespace(null);
+ fail("accepted null nsURI");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // success
+ }
+ }
+
+
+ public void testStandardMappings() throws Exception
+ {
+ NamespaceContext resolv = new NamespaceResolver();
+
assertEquals(XMLConstants.XML_NS_URI, resolv.getNamespaceURI(XMLConstants.XML_NS_PREFIX));
assertEquals(XMLConstants.XML_NS_PREFIX, resolv.getPrefix(XMLConstants.XML_NS_URI));
Iterator<String> itx1 = resolv.getPrefixes(XMLConstants.XML_NS_URI);
@@ -145,29 +192,31 @@
public void testEqualsAndHashCode() throws Exception
{
- NamespaceResolver resolv1 = new NamespaceResolver()
- .addNamespace("foo", "bar")
- .setDefaultNamespace("zippy");
- NamespaceResolver resolv2 = new NamespaceResolver()
- .addNamespace("foo", "bar")
- .setDefaultNamespace("zippy");
- NamespaceResolver resolv3 = new NamespaceResolver()
- .addNamespace("foo", "bar");
- NamespaceResolver resolv4 = new NamespaceResolver()
- .addNamespace("argle", "bargle");
+ Object obj1 = new NamespaceResolver()
+ .addNamespace("foo", "bar")
+ .setDefaultNamespace("zippy");
+ Object obj2 = new NamespaceResolver()
+ .addNamespace("foo", "bar")
+ .setDefaultNamespace("zippy");
+ Object obj3 = new NamespaceResolver()
+ .addNamespace("foo", "bar");
+ Object obj4 = new NamespaceResolver()
+ .addNamespace("argle", "bargle");
- assertTrue(resolv1.equals(resolv2));
- assertTrue(resolv2.equals(resolv1));
- assertEquals(resolv1.hashCode(), resolv2.hashCode());
+ assertFalse(obj1.equals(new Object()));
- assertFalse(resolv1.equals(resolv3));
- assertFalse(resolv3.equals(resolv1));
+ assertTrue(obj1.equals(obj2));
+ assertTrue(obj2.equals(obj1));
+ assertEquals(obj1.hashCode(), obj2.hashCode());
- assertFalse(resolv3.equals(resolv4));
- assertFalse(resolv4.equals(resolv3));
+ assertFalse(obj1.equals(obj3));
+ assertFalse(obj3.equals(obj1));
+ assertFalse(obj3.equals(obj4));
+ assertFalse(obj4.equals(obj3));
+
// this works today ... assume that the underlying calcs don't change
- assertFalse(resolv3.hashCode() == resolv4.hashCode());
+ assertFalse(obj3.hashCode() == obj4.hashCode());
}
Modified: trunk/src/test/java/net/sf/practicalxml/misc/TestSimpleNamespaceResolver.java
===================================================================
--- trunk/src/test/java/net/sf/practicalxml/misc/TestSimpleNamespaceResolver.java 2008-12-01 00:09:30 UTC (rev 36)
+++ trunk/src/test/java/net/sf/practicalxml/misc/TestSimpleNamespaceResolver.java 2008-12-01 02:11:10 UTC (rev 37)
@@ -9,6 +9,30 @@
public class TestSimpleNamespaceResolver extends AbstractTestCase
{
+ public void testInvalidConstruction() throws Exception
+ {
+ try
+ {
+ new SimpleNamespaceResolver(null, "foo");
+ fail("accepted null prefix");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // success
+ }
+
+ try
+ {
+ new SimpleNamespaceResolver("foo", null);
+ fail("accepted null nsURI");
+ }
+ catch (IllegalArgumentException e)
+ {
+ // success
+ }
+ }
+
+
public void testLookup() throws Exception
{
final String prefix = "foo";
@@ -25,9 +49,35 @@
}
+ public void testDefaultNamespace() throws Exception
+ {
+ final String prefix = "";
+ final String nsURI = "bar";
+
+ NamespaceContext resolv = new SimpleNamespaceResolver(prefix, nsURI);
+
+ assertEquals(nsURI, resolv.getNamespaceURI(prefix));
+ assertEquals(prefix, resolv.getPrefix(nsURI));
+
+ Iterator<String> itx = resolv.getPrefixes(nsURI);
+ assertEquals(prefix, itx.next());
+ assertFalse(itx.hasNext());
+ }
+
+
+ public void testUnboundNamespace() throws Exception
+ {
+ NamespaceContext resolv = new SimpleNamespaceResolver("foo", "bar");
+
+ assertNull(resolv.getNamespaceURI("argle"));
+ assertNull(resolv.getPrefix("argle"));
+ assertFalse(resolv.getPrefixes("argle").hasNext());
+ }
+
+
public void testStandardMappings() throws Exception
{
- NamespaceResolver resolv = new NamespaceResolver();
+ NamespaceContext resolv = new SimpleNamespaceResolver("foo", "bar");
assertEquals(XMLConstants.XML_NS_URI, resolv.getNamespaceURI(XMLConstants.XML_NS_PREFIX));
assertEquals(XMLConstants.XML_NS_PREFIX, resolv.getPrefix(XMLConstants.XML_NS_URI));
@@ -75,18 +125,20 @@
public void testEqualsAndHashCode() throws Exception
{
- Object resolv1 = new SimpleNamespaceResolver("foo", "bar");
- Object resolv2 = new SimpleNamespaceResolver("foo", "bar");
- Object resolv3 = new SimpleNamespaceResolver("argle", "bargle");
+ Object obj1 = new SimpleNamespaceResolver("foo", "bar");
+ Object obj2 = new SimpleNamespaceResolver("foo", "bar");
+ Object obj3 = new SimpleNamespaceResolver("argle", "bargle");
- assertTrue(resolv1.equals(resolv2));
- assertTrue(resolv2.equals(resolv1));
- assertTrue(resolv1.hashCode() == resolv2.hashCode());
+ assertFalse(obj1.equals(new Object()));
- assertFalse(resolv1.equals(resolv3));
- assertFalse(resolv3.equals(resolv1));
+ assertTrue(obj1.equals(obj2));
+ assertTrue(obj2.equals(obj1));
+ assertTrue(obj1.hashCode() == obj2.hashCode());
+
+ assertFalse(obj1.equals(obj3));
+ assertFalse(obj3.equals(obj1));
// this works today ... assume that the underlying calcs don't change
- assertFalse(resolv1.hashCode() == resolv3.hashCode());
+ assertFalse(obj1.hashCode() == obj3.hashCode());
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|