[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. |