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 2007/04/04 12:46:33 UTC

svn commit: r525488 - /jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java

Author: oheger
Date: Wed Apr  4 03:46:33 2007
New Revision: 525488

URL: http://svn.apache.org/viewvc?view=rev&rev=525488
Log:
Added an additional test for HierarchicalConfiguration.clearTree() after a report on the user list

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/viewvc/jakarta/commons/proper/configuration/trunk/src/test/org/apache/commons/configuration/TestHierarchicalConfiguration.java?view=diff&rev=525488&r1=525487&r2=525488
==============================================================================
--- 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 Wed Apr  4 03:46:33 2007
@@ -227,6 +227,62 @@
         assertNull(config.getProperty("tables.table.fields.field.name"));
     }
 
+    /**
+     * Tests removing more complex node structures.
+     */
+    public void testClearTreeComplex()
+    {
+        final int count = 5;
+        // create the structure
+        for (int idx = 0; idx < count; idx++)
+        {
+            config.addProperty("indexList.index(-1)[@default]", Boolean.FALSE);
+            config.addProperty("indexList.index[@name]", "test" + idx);
+            config.addProperty("indexList.index.dir", "testDir" + idx);
+        }
+        assertEquals("Wrong number of nodes", count - 1, config
+                .getMaxIndex("indexList.index[@name]"));
+
+        // Remove a sub tree
+        boolean found = false;
+        for (int idx = 0; true; idx++)
+        {
+            String name = config.getString("indexList.index(" + idx
+                    + ")[@name]");
+            if (name == null)
+            {
+                break;
+            }
+            if ("test3".equals(name))
+            {
+                assertEquals("Wrong dir", "testDir3", config
+                        .getString("indexList.index(" + idx + ").dir"));
+                config.clearTree("indexList.index(" + idx + ")");
+                found = true;
+            }
+        }
+        assertTrue("Key to remove not found", found);
+        assertEquals("Wrong number of nodes after remove", count - 2, config
+                .getMaxIndex("indexList.index[@name]"));
+        assertEquals("Wrong number of dir nodes after remove", count - 2,
+                config.getMaxIndex("indexList.index.dir"));
+
+        // Verify
+        for (int idx = 0; true; idx++)
+        {
+            String name = config.getString("indexList.index(" + idx
+                    + ")[@name]");
+            if (name == null)
+            {
+                break;
+            }
+            if ("test3".equals(name))
+            {
+                fail("Key was not removed!");
+            }
+        }
+    }
+
     public void testContainsKey()
     {
         assertTrue(config.containsKey("tables.table(0).name"));



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org