You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by oh...@apache.org on 2005/08/19 18:30:17 UTC
svn commit: r233508 -
/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java
Author: oheger
Date: Fri Aug 19 09:30:10 2005
New Revision: 233508
URL: http://svn.apache.org/viewcvs?rev=233508&view=rev
Log:
Increased unit test coverage
Modified:
jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java
Modified: jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java?rev=233508&r1=233507&r2=233508&view=diff
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java Fri Aug 19 09:30:10 2005
@@ -23,6 +23,8 @@
import java.util.List;
import java.util.Set;
+import org.apache.commons.configuration.HierarchicalConfiguration.Node;
+
import junit.framework.TestCase;
/**
@@ -75,6 +77,22 @@
config.getRoot().addChild(nodeTables);
}
+
+ public void testSetRoot()
+ {
+ try
+ {
+ config.setRoot(null);
+ fail("Could set null root node!");
+ }
+ catch(IllegalArgumentException iex)
+ {
+ //ok
+ }
+
+ config.setRoot(new HierarchicalConfiguration.Node("test"));
+ assertTrue(config.isEmpty());
+ }
public void testIsEmpty()
{
@@ -134,6 +152,10 @@
assertEquals(5, config.getMaxIndex("test.items.item"));
assertTrue(config.getBoolean("test"));
assertEquals("01/01/05", config.getProperty("test.items"));
+
+ config.setProperty("test.items.item", new Integer(42));
+ assertEquals(0, config.getMaxIndex("test.items.item"));
+ assertEquals(42, config.getInt("test.items.item"));
}
public void testClearProperty()
@@ -274,6 +296,16 @@
key.appendAttribute("tableType");
config.addProperty(key.toString(), "system");
assertEquals("system", config.getProperty(key.toString()));
+
+ try
+ {
+ config.addProperty(".", "InvalidKey");
+ fail("Could add invalid key!");
+ }
+ catch(IllegalArgumentException iex)
+ {
+ //ok
+ }
}
public void testGetMaxIndex()
@@ -355,6 +387,61 @@
assertEquals("birthDate", config.getString("tables.table(0).fields.field(5).name"));
assertEquals("lastLogin", config.getString("tables.table(0).fields.field(6).name"));
assertEquals("language", config.getString("tables.table(0).fields.field(7).name"));
+
+ try
+ {
+ config.addNodes(".", nodes);
+ fail("Could use empty key!");
+ }
+ catch(IllegalArgumentException iex)
+ {
+ //ok
+ }
+ }
+
+ /**
+ * Tests removing children from a configuration node.
+ */
+ public void testNodeRemove()
+ {
+ HierarchicalConfiguration.Node node = new HierarchicalConfiguration.Node(
+ "parent", "test");
+ node.removeChildren(); // should have no effect
+ assertFalse(node.remove("child"));
+
+ for (int i = 0; i < 10; i++)
+ {
+ node.addChild(createNode("child" + i, "test" + i));
+ }
+ assertFalse(node.remove("child"));
+ assertTrue(node.remove("child2"));
+ assertTrue(node.getChildren("child2").isEmpty());
+
+ HierarchicalConfiguration.Node child = createNode("child0", "testChild");
+ assertFalse(node.remove(child));
+ node.addChild(child);
+ assertTrue(node.remove(child));
+ assertEquals(1, node.getChildren("child0").size());
+ assertEquals("test0", ((HierarchicalConfiguration.Node) node
+ .getChildren("child0").get(0)).getValue());
+
+ assertTrue(node.remove("child0"));
+ assertFalse(node.remove(child));
+
+ node.removeChildren();
+ assertTrue(node.getChildren().isEmpty());
+ assertFalse(node.remove(child));
+ }
+
+ /**
+ * Tests the visitor mechanism.
+ */
+ public void testNodeVisitor()
+ {
+ CountVisitor v = new CountVisitor();
+ config.getRoot().visit(v, null);
+ assertEquals(28, v.beforeCount);
+ assertEquals(v.beforeCount, v.afterCount);
}
/**
@@ -410,5 +497,28 @@
HierarchicalConfiguration.Node node = new HierarchicalConfiguration.Node(name);
node.setValue(value);
return node;
+ }
+
+ /**
+ * A test visitor implementation for checking whether all visitor methods
+ * are correctly called.
+ */
+ static class CountVisitor extends HierarchicalConfiguration.NodeVisitor
+ {
+ public int beforeCount;
+
+ public int afterCount;
+
+ public void visitAfterChildren(Node node, ConfigurationKey key)
+ {
+ super.visitAfterChildren(node, key);
+ afterCount++;
+ }
+
+ public void visitBeforeChildren(Node node, ConfigurationKey key)
+ {
+ super.visitBeforeChildren(node, key);
+ beforeCount++;
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org