Author: jverhaeg(a)redhat.com
Date: 2008-06-02 16:12:41 -0400 (Mon, 02 Jun 2008)
New Revision: 233
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java
Log:
DNA-89: Added getNamespaceRegistry() to NameFactory, SequencerOutput, and impls, as well
as constant for "jcr:primaryType" to NameFactory
DNA-94: Changed to throw IAE if name is null or empty
Modified:
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java
===================================================================
---
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java 2008-06-02
20:11:36 UTC (rev 232)
+++
trunk/dna-spi/src/test/java/org/jboss/dna/spi/graph/impl/NameValueFactoryTest.java 2008-06-02
20:12:41 UTC (rev 233)
@@ -2,7 +2,7 @@
* JBoss, Home of Professional Open Source.
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
+ * distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
@@ -25,6 +25,7 @@
import static org.junit.Assert.assertThat;
import org.jboss.dna.common.text.TextEncoder;
import org.jboss.dna.spi.graph.Name;
+import org.jboss.dna.spi.graph.NamespaceRegistry;
import org.jboss.dna.spi.graph.Path;
import org.jboss.dna.spi.graph.ValueFactory;
import org.junit.Before;
@@ -32,63 +33,88 @@
/**
* @author Randall Hauch
+ * @author John Verhaeg
*/
public class NameValueFactoryTest {
- public static final TextEncoder NO_OP_ENCODER = Path.NO_OP_ENCODER;
+ public static final TextEncoder NO_OP_ENCODER = Path.NO_OP_ENCODER;
- private BasicNamespaceRegistry registry;
- private ValueFactory<String> stringValueFactory;
- private NameValueFactory factory;
- private TextEncoder encoder;
- private Name name;
+ private NamespaceRegistry registry;
+ private ValueFactory<String> stringValueFactory;
+ private NameValueFactory factory;
+ private TextEncoder encoder;
+ private Name name;
- @Before
- public void beforeEach() throws Exception {
- this.registry = new BasicNamespaceRegistry();
- this.registry.register("dna",
"http://www.jboss.org/dna/namespace");
- this.encoder = Path.DEFAULT_ENCODER;
- this.stringValueFactory = new StringValueFactory(encoder);
- this.factory = new NameValueFactory(registry, encoder, stringValueFactory);
- }
+ @Before
+ public void beforeEach() throws Exception {
+ this.registry = new BasicNamespaceRegistry();
+ this.registry.register("dna",
"http://www.jboss.org/dna/namespace");
+ this.encoder = Path.DEFAULT_ENCODER;
+ this.stringValueFactory = new StringValueFactory(encoder);
+ this.factory = new NameValueFactory(registry, encoder, stringValueFactory);
+ }
- @Test
- public void shouldCreateNameFromSingleStringInPrefixedNamespaceFormatWithoutPrefix()
{
- name = factory.create("a");
- assertThat(name.getLocalName(), is("a"));
- assertThat(name.getNamespaceUri(),
is(this.registry.getNamespaceForPrefix("")));
- }
+ @Test
+ public void shouldCreateNameFromSingleStringInPrefixedNamespaceFormatWithoutPrefix() {
+ name = factory.create("a");
+ assertThat(name.getLocalName(), is("a"));
+ assertThat(name.getNamespaceUri(),
is(this.registry.getNamespaceForPrefix("")));
+ }
- @Test
- public void shouldCreateNameFromSingleStringInPrefixedNamespaceFormat() {
- name = factory.create("dna:something");
- assertThat(name.getLocalName(), is("something"));
- assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
- assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}something"));
- }
+ @Test
+ public void shouldCreateNameFromSingleStringInPrefixedNamespaceFormat() {
+ name = factory.create("dna:something");
+ assertThat(name.getLocalName(), is("something"));
+ assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
+ assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}something"));
+ }
- @Test
- public void shouldCreateNameFromSingleEncodedStringInPrefixedNamespaceFormat() {
- name = factory.create(encoder.encode("dna") + ":" +
encoder.encode("some/thing"));
- assertThat(name.getLocalName(), is("some/thing"));
- assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
- assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}some/thing"));
- }
+ @Test
+ public void shouldCreateNameFromSingleEncodedStringInPrefixedNamespaceFormat() {
+ name = factory.create(encoder.encode("dna") + ":" +
encoder.encode("some/thing"));
+ assertThat(name.getLocalName(), is("some/thing"));
+ assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
+ assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}some/thing"));
+ }
- @Test
- public void shouldCreateNameFromSingleStringInStandardFullNamespaceFormat() {
- name =
factory.create("{http://www.jboss.org/dna/namespace}something");
- assertThat(name.getLocalName(), is("something"));
- assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
- assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}something"));
- }
+ @Test
+ public void shouldCreateNameFromSingleStringInStandardFullNamespaceFormat() {
+ name =
factory.create("{http://www.jboss.org/dna/namespace}something");
+ assertThat(name.getLocalName(), is("something"));
+ assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
+ assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}something"));
+ }
- @Test
- public void shouldCreateNameFromSingleEncodedStringInStandardFullNamespaceFormat() {
- name = factory.create("{" +
encoder.encode("http://www.jboss.org/dna/namespace") + "}" +
encoder.encode("some/thing"));
- assertThat(name.getLocalName(), is("some/thing"));
- assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
- assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}some/thing"));
- }
+ @Test
+ public void shouldCreateNameFromSingleEncodedStringInStandardFullNamespaceFormat() {
+ name = factory.create("{" +
encoder.encode("http://www.jboss.org/dna/namespace") + "}" +
encoder.encode("some/thing"));
+ assertThat(name.getLocalName(), is("some/thing"));
+ assertThat(name.getNamespaceUri(),
is("http://www.jboss.org/dna/namespace"));
+ assertThat(name.getString(NO_OP_ENCODER),
is("{http://www.jboss.org/dna/namespace}some/thing"));
+ }
+ @Test
+ public void shouldProvideAccessToNamespaceRegistryPassedInConstructor() {
+ assertThat(factory.getNamespaceRegistry(), is(registry));
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullLocalName() {
+ factory.create("a", (String)null);
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowNullLocalNameWithEncoder() {
+ factory.create("a", null, encoder);
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowEmptyLocalName() {
+ factory.create("a", "");
+ }
+
+ @Test( expected = IllegalArgumentException.class )
+ public void shouldNotAllowEmptyLocalNameWithEncoder() {
+ factory.create("a", "", encoder);
+ }
}