You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2014/04/20 21:32:10 UTC
svn commit: r1588831 [9/11] - in /commons/proper/configuration/trunk: ./
src/main/java/org/apache/commons/configuration/
src/main/java/org/apache/commons/configuration/beanutils/
src/main/java/org/apache/commons/configuration/builder/combined/ src/main...
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestSubnodeConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestSubnodeConfiguration.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestSubnodeConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestSubnodeConfiguration.java Sun Apr 20 19:32:08 2014
@@ -17,11 +17,11 @@
package org.apache.commons.configuration;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
-import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.NoSuchElementException;
@@ -31,41 +31,30 @@ import org.apache.commons.collections.Co
import org.apache.commons.configuration.convert.DefaultListDelimiterHandler;
import org.apache.commons.configuration.convert.DisabledListDelimiterHandler;
import org.apache.commons.configuration.convert.ListDelimiterHandler;
-import org.apache.commons.configuration.event.ConfigurationEvent;
-import org.apache.commons.configuration.event.ConfigurationListener;
-import org.apache.commons.configuration.ex.ConfigurationException;
import org.apache.commons.configuration.interpol.ConfigurationInterpolator;
import org.apache.commons.configuration.interpol.Lookup;
-import org.apache.commons.configuration.tree.ConfigurationNode;
+import org.apache.commons.configuration.tree.ImmutableNode;
+import org.apache.commons.configuration.tree.InMemoryNodeModel;
+import org.apache.commons.configuration.tree.NodeSelector;
+import org.apache.commons.configuration.tree.NodeStructureHelper;
+import org.apache.commons.configuration.tree.TrackedNodeModel;
import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine;
+import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
/**
* Test case for SubnodeConfiguration.
*
- * @author <a
- * href="http://commons.apache.org/configuration/team-list.html">Commons
- * Configuration team</a>
* @version $Id$
*/
public class TestSubnodeConfiguration
{
- /** An array with names of tables (test data). */
- private static final String[] TABLE_NAMES =
- { "documents", "users" };
-
- /** An array with the fields of the test tables (test data). */
- private static final String[][] TABLE_FIELDS =
- {
- { "docid", "docname", "author", "dateOfCreation", "version", "size" },
- { "userid", "uname", "firstName", "lastName" } };
-
- /** Constant for an updated table name.*/
- private static final String NEW_TABLE_NAME = "newTable";
-
/** The key used for the SubnodeConfiguration. */
- private static final String SUB_KEY = "tables.table(1)";
+ private static final String SUB_KEY = "tables.table(0)";
+
+ /** The selector used by the test configuration. */
+ private static final NodeSelector SELECTOR = new NodeSelector(SUB_KEY);
/** The parent configuration. */
private BaseHierarchicalConfiguration parent;
@@ -73,14 +62,67 @@ public class TestSubnodeConfiguration
/** The subnode configuration to be tested. */
private SubnodeConfiguration config;
- /** Stores a counter for the created nodes. */
- private int nodeCounter;
-
@Before
public void setUp() throws Exception
{
parent = setUpParentConfig();
- nodeCounter = 0;
+ }
+
+ /**
+ * Initializes the parent configuration. This method creates the typical
+ * structure of tables and fields nodes.
+ *
+ * @return the parent configuration
+ */
+ private static BaseHierarchicalConfiguration setUpParentConfig()
+ {
+ BaseHierarchicalConfiguration conf =
+ new BaseHierarchicalConfiguration();
+ appendTree(conf, NodeStructureHelper.ROOT_TABLES_TREE);
+ return conf;
+ }
+
+ /**
+ * Adds a tree structure to the root node of the given configuration.
+ *
+ * @param configuration the configuration
+ * @param root the root of the tree structure to be added
+ */
+ private static void appendTree(BaseHierarchicalConfiguration configuration,
+ ImmutableNode root)
+ {
+ configuration.addNodes(null, Collections.singleton(root));
+ }
+
+ /**
+ * Performs a standard initialization of the subnode config to test.
+ */
+ private void setUpSubnodeConfig()
+ {
+ setUpSubnodeConfig(SUB_KEY);
+ }
+
+ /**
+ * Initializes the test configuration using the specified key.
+ *
+ * @param key the key
+ */
+ private void setUpSubnodeConfig(String key)
+ {
+ config = (SubnodeConfiguration) parent.configurationAt(key, true);
+ }
+
+ /**
+ * Sets up the tracked model for the sub configuration.
+ *
+ * @param selector the selector
+ * @return the tracked model
+ */
+ private TrackedNodeModel setUpTrackedModel(NodeSelector selector)
+ {
+ InMemoryNodeModel parentModel = (InMemoryNodeModel) parent.getModel();
+ parentModel.trackNode(selector, parent);
+ return new TrackedNodeModel(parent, selector, true);
}
/**
@@ -90,8 +132,9 @@ public class TestSubnodeConfiguration
public void testInitSubNodeConfig()
{
setUpSubnodeConfig();
- assertSame("Wrong root node in subnode", getSubnodeRoot(parent), config
- .getRootNode());
+ assertSame("Wrong root node in subnode",
+ NodeStructureHelper.nodeForKey(parent.getRootNode(),
+ "tables/table(0)"), config.getRootNode());
assertSame("Wrong parent config", parent, config.getParent());
}
@@ -102,17 +145,19 @@ public class TestSubnodeConfiguration
@Test(expected = IllegalArgumentException.class)
public void testInitSubNodeConfigWithNullParent()
{
- config = new SubnodeConfiguration(null, getSubnodeRoot(parent), null);
+ config =
+ new SubnodeConfiguration(null, setUpTrackedModel(SELECTOR)
+ );
}
/**
- * Tests constructing a subnode configuration with a null root node. This
+ * Tests constructing a subnode configuration with a null node model. This
* should cause an exception.
*/
@Test(expected = IllegalArgumentException.class)
public void testInitSubNodeConfigWithNullNode()
{
- config = new SubnodeConfiguration(parent, null, null);
+ config = new SubnodeConfiguration(parent, null);
}
/**
@@ -122,15 +167,23 @@ public class TestSubnodeConfiguration
public void testGetProperties()
{
setUpSubnodeConfig();
- assertEquals("Wrong table name", TABLE_NAMES[0], config
- .getString("name"));
+ checkSubConfigContent();
+ }
+
+ /**
+ * Checks whether the sub configuration has the expected content.
+ */
+ private void checkSubConfigContent()
+ {
+ assertEquals("Wrong table name", NodeStructureHelper.table(0),
+ config.getString("name"));
List<Object> fields = config.getList("fields.field.name");
- assertEquals("Wrong number of fields", TABLE_FIELDS[0].length, fields
- .size());
- for (int i = 0; i < TABLE_FIELDS[0].length; i++)
+ assertEquals("Wrong number of fields",
+ NodeStructureHelper.fieldsLength(0), fields.size());
+ for (int i = 0; i < NodeStructureHelper.fieldsLength(0); i++)
{
- assertEquals("Wrong field at position " + i, TABLE_FIELDS[0][i],
- fields.get(i));
+ assertEquals("Wrong field at position " + i,
+ NodeStructureHelper.field(0, i), fields.get(i));
}
}
@@ -143,15 +196,15 @@ public class TestSubnodeConfiguration
{
setUpSubnodeConfig();
config.setProperty(null, "testTable");
- config.setProperty("name", TABLE_NAMES[0] + "_tested");
- assertEquals("Root value was not set", "testTable", parent
- .getString("tables.table(0)"));
- assertEquals("Table name was not changed", TABLE_NAMES[0] + "_tested",
- parent.getString("tables.table(0).name"));
+ config.setProperty("name", NodeStructureHelper.table(0) + "_tested");
+ assertEquals("Root value was not set", "testTable",
+ parent.getString("tables.table(0)"));
+ assertEquals("Table name was not changed", NodeStructureHelper.table(0)
+ + "_tested", parent.getString("tables.table(0).name"));
parent.setProperty("tables.table(0).fields.field(1).name", "testField");
- assertEquals("Field name was not changed", "testField", config
- .getString("fields.field(1).name"));
+ assertEquals("Field name was not changed", "testField",
+ config.getString("fields.field(1).name"));
}
/**
@@ -162,16 +215,15 @@ public class TestSubnodeConfiguration
{
setUpSubnodeConfig();
config.addProperty("[@table-type]", "test");
- assertEquals("parent.createNode() was not called", 1, nodeCounter);
- assertEquals("Attribute not set", "test", parent
- .getString("tables.table(0)[@table-type]"));
+ assertEquals("Attribute not set", "test",
+ parent.getString("tables.table(0)[@table-type]"));
parent.addProperty("tables.table(0).fields.field(-1).name", "newField");
List<Object> fields = config.getList("fields.field.name");
- assertEquals("New field was not added", TABLE_FIELDS[0].length + 1,
- fields.size());
- assertEquals("Wrong last field", "newField", fields
- .get(fields.size() - 1));
+ assertEquals("New field was not added",
+ NodeStructureHelper.fieldsLength(0) + 1, fields.size());
+ assertEquals("Wrong last field", "newField",
+ fields.get(fields.size() - 1));
}
/**
@@ -197,13 +249,14 @@ public class TestSubnodeConfiguration
{
parent.setThrowExceptionOnMissing(true);
setUpSubnodeConfig();
- assertTrue("Exception flag not fetchted from parent", config
- .isThrowExceptionOnMissing());
+ assertTrue("Exception flag not fetchted from parent",
+ config.isThrowExceptionOnMissing());
config.getString("non existing key");
}
/**
- * Tests whether the exception flag can be set independently from the parent.
+ * Tests whether the exception flag can be set independently from the
+ * parent.
*/
@Test
public void testSetThrowExceptionOnMissingAffectsParent()
@@ -211,8 +264,8 @@ public class TestSubnodeConfiguration
parent.setThrowExceptionOnMissing(true);
setUpSubnodeConfig();
config.setThrowExceptionOnMissing(false);
- assertTrue("Exception flag reset on parent", parent
- .isThrowExceptionOnMissing());
+ assertTrue("Exception flag reset on parent",
+ parent.isThrowExceptionOnMissing());
}
/**
@@ -244,31 +297,47 @@ public class TestSubnodeConfiguration
public void testSetExpressionEngine()
{
parent.setExpressionEngine(new XPathExpressionEngine());
- setUpSubnodeConfig();
- assertEquals("Wrong field name", TABLE_FIELDS[0][1], config
- .getString("fields/field[2]/name"));
+ setUpSubnodeConfig("tables/table[1]");
+ assertEquals("Wrong field name", NodeStructureHelper.field(0, 1),
+ config.getString("fields/field[2]/name"));
Set<String> keys = new HashSet<String>();
CollectionUtils.addAll(keys, config.getKeys());
assertEquals("Wrong number of keys", 2, keys.size());
assertTrue("Key 1 not contained", keys.contains("name"));
assertTrue("Key 2 not contained", keys.contains("fields/field/name"));
config.setExpressionEngine(null);
- assertTrue("Expression engine reset on parent", parent
- .getExpressionEngine() instanceof XPathExpressionEngine);
+ assertTrue("Expression engine reset on parent",
+ parent.getExpressionEngine() instanceof XPathExpressionEngine);
+ }
+
+ /**
+ * Tests the configurationAt() method if updates are not supported.
+ */
+ @Test
+ public void testConfiguarationAtNoUpdates()
+ {
+ setUpSubnodeConfig();
+ HierarchicalConfiguration<ImmutableNode> sub2 =
+ config.configurationAt("fields.field(1)");
+ assertEquals("Wrong value of property",
+ NodeStructureHelper.field(0, 1), sub2.getString("name"));
+ parent.setProperty("tables.table(0).fields.field(1).name", "otherName");
+ assertEquals("Change of parent is visible",
+ NodeStructureHelper.field(0, 1), sub2.getString("name"));
}
/**
- * Tests the configurationAt() method.
+ * Tests configurationAt() if updates are supported.
*/
@Test
- public void testConfiguarationAt()
+ public void testConfigurationAtWithUpdateSupport()
{
setUpSubnodeConfig();
- SubnodeConfiguration sub2 = config
- .configurationAt("fields.field(1)");
- assertEquals("Wrong value of property", TABLE_FIELDS[0][1], sub2
- .getString("name"));
- assertEquals("Wrong parent", config.getParent(), sub2.getParent());
+ SubnodeConfiguration sub2 =
+ (SubnodeConfiguration) config.configurationAt("fields.field(1)", true);
+ assertEquals("Wrong value of property",
+ NodeStructureHelper.field(0, 1), sub2.getString("name"));
+ assertEquals("Wrong parent", config, sub2.getParent());
}
/**
@@ -282,8 +351,8 @@ public class TestSubnodeConfiguration
parent.addProperty("tablespaces.tablespace(-1).name", "test");
parent.addProperty("tables.table(0).tablespace",
"${tablespaces.tablespace(0).name}");
- assertEquals("Wrong interpolated tablespace", "default", parent
- .getString("tables.table(0).tablespace"));
+ assertEquals("Wrong interpolated tablespace", "default",
+ parent.getString("tables.table(0).tablespace"));
setUpSubnodeConfig();
assertEquals("Wrong interpolated tablespace in subnode", "default",
@@ -291,28 +360,50 @@ public class TestSubnodeConfiguration
}
/**
- * An additional test for interpolation when the configurationAt() method is
- * involved.
+ * Helper method for testing interpolation facilities between a sub and its
+ * parent configuration.
+ *
+ * @param withUpdates the supports updates flag
*/
- @Test
- public void testInterpolationFromConfigurationAt()
+ private void checkInterpolationFromConfigurationAt(boolean withUpdates)
{
parent.addProperty("base.dir", "/home/foo");
parent.addProperty("test.absolute.dir.dir1", "${base.dir}/path1");
parent.addProperty("test.absolute.dir.dir2", "${base.dir}/path2");
parent.addProperty("test.absolute.dir.dir3", "${base.dir}/path3");
- Configuration sub = parent.configurationAt("test.absolute.dir");
+ Configuration sub =
+ parent.configurationAt("test.absolute.dir", withUpdates);
for (int i = 1; i < 4; i++)
{
assertEquals("Wrong interpolation in parent", "/home/foo/path" + i,
parent.getString("test.absolute.dir.dir" + i));
- assertEquals("Wrong interpolation in subnode",
- "/home/foo/path" + i, sub.getString("dir" + i));
+ assertEquals("Wrong interpolation in sub", "/home/foo/path" + i,
+ sub.getString("dir" + i));
}
}
/**
+ * Tests whether interpolation works for a sub configuration obtained via
+ * configurationAt() if updates are not supported.
+ */
+ @Test
+ public void testInterpolationFromConfigurationAtNoUpdateSupport()
+ {
+ checkInterpolationFromConfigurationAt(false);
+ }
+
+ /**
+ * Tests whether interpolation works for a sub configuration obtained via
+ * configurationAt() if updates are supported.
+ */
+ @Test
+ public void testInterpolationFromConfigurationAtWithUpdateSupport()
+ {
+ checkInterpolationFromConfigurationAt(true);
+ }
+
+ /**
* An additional test for interpolation when the configurationAt() method is
* involved for a local interpolation.
*/
@@ -324,10 +415,10 @@ public class TestSubnodeConfiguration
parent.addProperty("test.absolute.dir.dir2", "${dir1}");
Configuration sub = parent.configurationAt("test.absolute.dir");
- assertEquals("Wrong interpolation in subnode",
- "/home/foo/path1", sub.getString("dir1"));
- assertEquals("Wrong local interpolation in subnode",
- "/home/foo/path1", sub.getString("dir2"));
+ assertEquals("Wrong interpolation in subnode", "/home/foo/path1",
+ sub.getString("dir1"));
+ assertEquals("Wrong local interpolation in subnode", "/home/foo/path1",
+ sub.getString("dir2"));
}
/**
@@ -344,157 +435,23 @@ public class TestSubnodeConfiguration
}
@Test
- public void testLocalLookupsInInterpolatorAreInherited() {
+ public void testLocalLookupsInInterpolatorAreInherited()
+ {
parent.addProperty("tablespaces.tablespace.name", "default");
parent.addProperty("tablespaces.tablespace(-1).name", "test");
parent.addProperty("tables.table(0).var", "${brackets:x}");
ConfigurationInterpolator interpolator = parent.getInterpolator();
- interpolator.registerLookup("brackets", new Lookup(){
+ interpolator.registerLookup("brackets", new Lookup() {
- @Override
public String lookup(String key) {
- return "(" + key +")";
+ return "(" + key + ")";
}
});
setUpSubnodeConfig();
- assertEquals("Local lookup was not inherited", "(x)", config.getString("var", ""));
- }
-
- /**
- * Tests a reload operation for the parent configuration when the subnode
- * configuration does not support reloads. Then the new value should not be
- * detected.
- */
- @Test
- public void testParentReloadNotSupported() throws ConfigurationException
- {
- Configuration c = setUpLiveUpdateTest(false);
- assertEquals("Name changed in sub config", TABLE_NAMES[1], config
- .getString("name"));
- assertEquals("Name not changed in parent", NEW_TABLE_NAME, c
- .getString("tables.table(1).name"));
- }
-
- /**
- * Tests a reload operation for the parent configuration when the subnode
- * configuration does support reloads. The new value should be returned.
- */
- @Test
- public void testParentReloadSupported() throws ConfigurationException
- {
- Configuration c = setUpLiveUpdateTest(true);
- assertEquals("Name not changed in sub config", NEW_TABLE_NAME, config
- .getString("name"));
- assertEquals("Name not changed in parent", NEW_TABLE_NAME, c
- .getString("tables.table(1).name"));
- }
-
- /**
- * Tests whether events are fired if a change of the parent is detected.
- */
- @Test
- public void testParentReloadEvents() throws ConfigurationException
- {
- config = parent.configurationAt(SUB_KEY, true);
- ConfigurationListenerTestImpl l = new ConfigurationListenerTestImpl();
- config.addConfigurationListener(l);
- updateParent();
- assertEquals("Wrong number of events", 4, l.events.size());
- boolean before = true;
- for (ConfigurationEvent e : l.events)
- {
- assertEquals("Wrong configuration", config, e.getSource());
- assertEquals("Wrong event type",
- BaseHierarchicalConfiguration.EVENT_SUBNODE_CHANGED, e
- .getType());
- assertNull("Got a property name", e.getPropertyName());
- assertNull("Got a property value", e.getPropertyValue());
- assertEquals("Wrong before flag", before, e.isBeforeUpdate());
- before = !before;
- }
- }
-
- /**
- * Tests a reload operation for the parent configuration when the subnode
- * configuration is aware of reloads, and the parent configuration is
- * accessed first. The new value should be returned.
- */
- @Test
- public void testParentReloadSupportAccessParent()
- throws ConfigurationException
- {
- Configuration c = setUpLiveUpdateTest(true);
- assertEquals("Name not changed in parent", NEW_TABLE_NAME, c
- .getString("tables.table(1).name"));
- assertEquals("Name not changed in sub config", NEW_TABLE_NAME, config
- .getString("name"));
- }
-
- /**
- * Tests whether reloads work with sub subnode configurations.
- */
- @Test
- public void testParentReloadSubSubnode() throws ConfigurationException
- {
- setUpLiveUpdateTest(true);
- SubnodeConfiguration sub = config.configurationAt("fields", true);
- assertEquals("Wrong subnode key", "tables.table(1).fields", sub
- .getSubnodeKey());
- assertEquals("Changed field not detected", "newField", sub
- .getString("field(0).name"));
- }
-
- /**
- * Tests creating a sub sub config when the sub config is not aware of
- * changes. Then the sub sub config shouldn't be either.
- */
- @Test
- public void testParentReloadSubSubnodeNoChangeSupport()
- throws ConfigurationException
- {
- setUpLiveUpdateTest(false);
- SubnodeConfiguration sub = config.configurationAt("fields", true);
- assertNull("Sub sub config is attached to parent", sub.getSubnodeKey());
- assertEquals("Changed field name returned", TABLE_FIELDS[1][0], sub
- .getString("field(0).name"));
- }
-
- /**
- * Prepares a test for updates of a SubnodeConfiguration if the node
- * structure of the parent changes. This method replaces the nodes for the
- * tables with new ones.
- *
- * @param supportReload a flag whether the SubnodeConfiguration should
- * support reload operations
- * @return the parent configuration that can be used for testing
- */
- private HierarchicalConfiguration setUpLiveUpdateTest(boolean supportReload)
- {
- config = parent.configurationAt(SUB_KEY, supportReload);
- updateParent();
- return parent;
- }
-
- /**
- * Updates the parent configuration. Replaces the node structure so that
- * an attached SubnodeConfiguration should be removed now.
- */
- private void updateParent()
- {
- String[] tableNamesNew = TABLE_NAMES.clone();
- String[][] fieldNamesNew = new String[TABLE_FIELDS.length][];
- for(int i = 0; i < TABLE_FIELDS.length; i++)
- {
- fieldNamesNew[i] = TABLE_FIELDS[i].clone();
- }
- tableNamesNew[1] = NEW_TABLE_NAME;
- fieldNamesNew[1][0] = "newField";
- addTableData(parent, tableNamesNew, fieldNamesNew);
- String keyClear = "tables.table(0)";
- parent.clearTree(keyClear);
- parent.clearTree(keyClear);
+ assertEquals("Local lookup was not inherited", "(x)",
+ config.getString("var", ""));
}
/**
@@ -505,117 +462,60 @@ public class TestSubnodeConfiguration
@Test
public void testParentChangeDetach()
{
- final String key = SUB_KEY;
- config = parent.configurationAt(key, true);
- assertEquals("Wrong subnode key", key, config.getSubnodeKey());
- assertEquals("Wrong table name", TABLE_NAMES[1], config
- .getString("name"));
- parent.clearTree(key);
- assertEquals("Wrong table name after change", TABLE_NAMES[1], config
- .getString("name"));
- assertNull("Sub config was not detached", config.getSubnodeKey());
+ setUpSubnodeConfig();
+ parent.clear();
+ checkSubConfigContent();
}
/**
- * Tests detaching a subnode configuration when an exception is thrown
- * during reconstruction. This can happen e.g. if the expression engine is
- * changed for the parent.
+ * Tests detaching a subnode configuration if an exception is thrown during
+ * reconstruction. This can happen e.g. if the expression engine is changed
+ * for the parent.
*/
@Test
public void testParentChangeDetatchException()
{
- config = parent.configurationAt(SUB_KEY, true);
+ setUpSubnodeConfig();
parent.setExpressionEngine(new XPathExpressionEngine());
parent.addProperty("newProp", "value");
- assertEquals("Wrong name of table", TABLE_NAMES[1], config
- .getString("name"));
- assertNull("Sub config was not detached", config.getSubnodeKey());
- }
-
- /**
- * Initializes the parent configuration. This method creates the typical
- * structure of tables and fields nodes.
- *
- * @return the parent configuration
- */
- protected BaseHierarchicalConfiguration setUpParentConfig()
- {
- BaseHierarchicalConfiguration conf = new BaseHierarchicalConfiguration()
- {
- /**
- * Serial version UID.
- */
- private static final long serialVersionUID = 1L;
-
- // Provide a special implementation of createNode() to check
- // if it is called by the subnode config
- @Override
- protected ConfigurationNode createNode(String name)
- {
- nodeCounter++;
- return super.createNode(name);
- }
- };
- addTableData(conf, TABLE_NAMES, TABLE_FIELDS);
- return conf;
- }
-
- /**
- * Appends properties for table names and their fields to the given
- * configuration.
- *
- * @param conf the configuration to be filled
- * @param tableNames an array with the names of the tables to add
- * @param fields and array with the field names per table
- */
- private static void addTableData(Configuration conf, String[] tableNames,
- String[][] fields)
- {
- for (int i = 0; i < tableNames.length; i++)
- {
- conf.addProperty("tables.table(-1).name", tableNames[i]);
- for (int j = 0; j < fields[i].length; j++)
- {
- conf.addProperty("tables.table.fields.field(-1).name",
- fields[i][j]);
- }
- }
+ checkSubConfigContent();
}
/**
- * Returns the root node for the subnode config. This method returns the
- * first table node.
- *
- * @param conf the parent config
- * @return the root node for the subnode config
+ * Tests whether a clone of a sub configuration can be created.
*/
- protected ConfigurationNode getSubnodeRoot(HierarchicalConfiguration conf)
+ @Test
+ public void testClone()
{
- ConfigurationNode root = conf.getRootNode();
- return root.getChild(0).getChild(0);
- }
+ setUpSubnodeConfig();
+ SubnodeConfiguration copy = (SubnodeConfiguration) config.clone();
+ assertNotSame("Same model", config.getModel(), copy.getModel());
+ TrackedNodeModel subModel = (TrackedNodeModel) copy.getModel();
+ assertEquals("Wrong selector", SELECTOR, subModel.getSelector());
+ InMemoryNodeModel parentModel = (InMemoryNodeModel) parent.getModel();
+ assertEquals("Wrong parent model", parentModel,
+ subModel.getParentModel());
- /**
- * Performs a standard initialization of the subnode config to test.
- */
- protected void setUpSubnodeConfig()
- {
- config = new SubnodeConfiguration(parent, getSubnodeRoot(parent), null);
+ // Check whether the track count was increased
+ parentModel.untrackNode(SELECTOR);
+ parentModel.untrackNode(SELECTOR);
+ assertTrue("Wrong finalize flag",
+ subModel.isReleaseTrackedNodeOnFinalize());
}
/**
- * A specialized configuration listener for testing whether the expected
- * events are fired.
+ * Tests whether the configuration can be closed.
*/
- private static class ConfigurationListenerTestImpl implements ConfigurationListener
+ @Test
+ public void testClose()
{
- /** Stores the events received.*/
- final List<ConfigurationEvent> events = new ArrayList<ConfigurationEvent>();
+ TrackedNodeModel model = EasyMock.createMock(TrackedNodeModel.class);
+ EasyMock.expect(model.getSelector()).andReturn(SELECTOR).anyTimes();
+ model.close();
+ EasyMock.replay(model);
- @Override
- public void configurationChanged(ConfigurationEvent event)
- {
- events.add(event);
- }
+ SubnodeConfiguration config = new SubnodeConfiguration(parent, model);
+ config.close();
+ EasyMock.verify(model);
}
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestXMLConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestXMLConfiguration.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestXMLConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/TestXMLConfiguration.java Sun Apr 20 19:32:08 2014
@@ -17,13 +17,19 @@
package org.apache.commons.configuration;
+import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.TransformerFactoryConfigurationError;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
@@ -36,21 +42,16 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.List;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
import org.apache.commons.configuration.SynchronizerTestImpl.Methods;
import org.apache.commons.configuration.builder.FileBasedBuilderParametersImpl;
import org.apache.commons.configuration.builder.FileBasedConfigurationBuilder;
import org.apache.commons.configuration.convert.DefaultListDelimiterHandler;
import org.apache.commons.configuration.convert.DisabledListDelimiterHandler;
import org.apache.commons.configuration.ex.ConfigurationException;
-import org.apache.commons.configuration.ex.ConfigurationRuntimeException;
import org.apache.commons.configuration.io.FileHandler;
import org.apache.commons.configuration.resolver.CatalogResolver;
-import org.apache.commons.configuration.tree.ConfigurationNode;
-import org.apache.commons.configuration.tree.DefaultConfigurationNode;
+import org.apache.commons.configuration.tree.ImmutableNode;
+import org.apache.commons.configuration.tree.NodeStructureHelper;
import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine;
import org.junit.Before;
import org.junit.Test;
@@ -300,7 +301,7 @@ public class TestXMLConfiguration
}
@Test
- public void testClearAttributenonExisting()
+ public void testClearAttributeNonExisting()
{
String key = "clear[@id]";
conf.clearProperty(key);
@@ -343,20 +344,22 @@ public class TestXMLConfiguration
conf.setProperty("foo[@bar]", "value");
assertEquals("foo[@bar]", "value", conf.getProperty("foo[@bar]"));
- conf.setProperty("name1","value1");
- assertEquals("value1",conf.getProperty("name1"));
+ conf.setProperty("name1", "value1");
+ assertEquals("value1", conf.getProperty("name1"));
}
+ /**
+ * Tests whether an attribute value can be overridden.
+ */
@Test
- public void testAddAttribute()
+ public void testOverrideAttribute()
{
conf.addProperty("element3[@name]", "bar");
List<Object> list = conf.getList("element3[@name]");
assertNotNull("null list", list);
- assertTrue("'foo' element missing", list.contains("foo"));
assertTrue("'bar' element missing", list.contains("bar"));
- assertEquals("list size", 2, list.size());
+ assertEquals("list size", 1, list.size());
}
@Test
@@ -387,17 +390,6 @@ public class TestXMLConfiguration
.getString("[@test]"));
}
- /**
- * Tests whether the configuration's root node is initialized with a
- * reference to the corresponding XML element.
- */
- @Test
- public void testGetRootReference()
- {
- assertNotNull("Root node has no reference", conf.getRootNode()
- .getReference());
- }
-
@Test
public void testAddList()
{
@@ -932,8 +924,8 @@ public class TestXMLConfiguration
StringWriter out = new StringWriter();
handler.save(out);
- assertTrue("Encoding was not written to file", out.toString().indexOf(
- "encoding=\"" + ENCODING + "\"") >= 0);
+ assertThat("Encoding was not written to file", out.toString(),
+ containsString("encoding=\"" + ENCODING + "\""));
}
/**
@@ -950,8 +942,8 @@ public class TestXMLConfiguration
StringWriter out = new StringWriter();
handler.save(out);
- assertTrue("Encoding was written to file", out.toString().indexOf(
- "encoding=\"UTF-") >= 0);
+ assertThat("Encoding was written to file", out.toString(),
+ containsString("encoding=\"UTF-"));
}
/**
@@ -967,7 +959,8 @@ public class TestXMLConfiguration
assertEquals("Wrong system ID", SYSTEM_ID, conf.getSystemID());
StringWriter out = new StringWriter();
new FileHandler(conf).save(out);
- assertTrue("Did not find DOCTYPE", out.toString().indexOf(DOCTYPE) >= 0);
+ assertThat("Did not find DOCTYPE", out.toString(),
+ containsString(DOCTYPE));
}
/**
@@ -983,25 +976,24 @@ public class TestXMLConfiguration
conf.setSystemID(SYSTEM_ID);
StringWriter out = new StringWriter();
new FileHandler(conf).save(out);
- assertTrue("Did not find DOCTYPE", out.toString().indexOf(
- DOCTYPE + "testconfig" + DOCTYPE_DECL) >= 0);
+ assertThat("Did not find DOCTYPE", out.toString(), containsString(
+ DOCTYPE + "testconfig" + DOCTYPE_DECL));
}
/**
- * Tests saving a configuration when an invalid transformer factory is
- * specified. In this case the error thrown by the TransformerFactory class
- * should be caught and re-thrown as a ConfigurationException.
+ * Tests saving a configuration if an invalid transformer factory is
+ * specified. In this case an error is thrown by the transformer factory.
+ * XMLConfiguration should not catch this error.
*/
@Test
- public void testSaveWithInvalidTransformerFactory()
- {
+ public void testSaveWithInvalidTransformerFactory() throws ConfigurationException {
System.setProperty(PROP_FACTORY, "an.invalid.Class");
try
{
saveTestConfig();
fail("Could save with invalid TransformerFactory!");
}
- catch (ConfigurationException cex)
+ catch (TransformerFactoryConfigurationError cex)
{
// ok
}
@@ -1034,11 +1026,6 @@ public class TestXMLConfiguration
copy.setListDelimiterHandler(new DefaultListDelimiterHandler(','));
assertEquals("value", copy.getProperty("element"));
assertNull("Document was copied, too", copy.getDocument());
- ConfigurationNode root = copy.getRootNode();
- for (ConfigurationNode node : root.getChildren())
- {
- assertNull("Reference was not cleared", node.getReference());
- }
new FileHandler(copy).save(testSaveConf);
checkSavedConfig();
@@ -1146,7 +1133,7 @@ public class TestXMLConfiguration
builder.getFileHandler().setFile(testSaveConf);
builder.setAutoSave(true);
final String newValue = "I am autosaved";
- Configuration sub = conf.configurationAt("element2.subelement");
+ Configuration sub = conf.configurationAt("element2.subelement", true);
sub.setProperty("subsubelement", newValue);
assertEquals("Change not visible to parent", newValue,
conf.getString("element2.subelement.subsubelement"));
@@ -1172,8 +1159,8 @@ public class TestXMLConfiguration
builder.getFileHandler().setFile(testSaveConf);
builder.setAutoSave(true);
final String newValue = "I am autosaved";
- SubnodeConfiguration sub1 = conf.configurationAt("element2");
- SubnodeConfiguration sub2 = sub1.configurationAt("subelement");
+ HierarchicalConfiguration<?> sub1 = conf.configurationAt("element2", true);
+ HierarchicalConfiguration<?> sub2 = sub1.configurationAt("subelement", true);
sub2.setProperty("subsubelement", newValue);
assertEquals("Change not visible to parent", newValue, conf
.getString("element2.subelement.subsubelement"));
@@ -1230,15 +1217,19 @@ public class TestXMLConfiguration
}
/**
- * Tries to create an attribute with multiple values.
+ * Tries to create an attribute with multiple values. Only the first value
+ * is taken into account.
*/
- @Test(expected = ConfigurationRuntimeException.class)
+ @Test
public void testAttributeKeyWithMultipleValues()
throws ConfigurationException
{
conf.addProperty("errorTest[@multiAttr]", Arrays.asList("v1", "v2"));
- StringWriter out = new StringWriter();
- new FileHandler(conf).save(out);
+ saveTestConfig();
+ XMLConfiguration checkConfig = new XMLConfiguration();
+ load(checkConfig, testSaveConf.getAbsolutePath());
+ assertEquals("Wrong attribute value", "v1",
+ checkConfig.getString("errorTest[@multiAttr]"));
}
/**
@@ -1268,9 +1259,9 @@ public class TestXMLConfiguration
conf = builder.getConfiguration();
builder.getFileHandler().setFile(testSaveConf);
builder.setAutoSave(true);
- ConfigurationNode node = new DefaultConfigurationNode(
+ ImmutableNode node = NodeStructureHelper.createNode(
"addNodesTest", Boolean.TRUE);
- Collection<ConfigurationNode> nodes = new ArrayList<ConfigurationNode>(1);
+ Collection<ImmutableNode> nodes = new ArrayList<ImmutableNode>(1);
nodes.add(node);
conf.addNodes("test.autosave", nodes);
XMLConfiguration c2 = new XMLConfiguration();
@@ -1286,16 +1277,12 @@ public class TestXMLConfiguration
@Test
public void testAddNodesAndSave() throws ConfigurationException
{
- ConfigurationNode node = new DefaultConfigurationNode("test");
- ConfigurationNode child = new DefaultConfigurationNode("child");
- node.addChild(child);
- ConfigurationNode attr = new DefaultConfigurationNode("attr");
- node.addAttribute(attr);
- ConfigurationNode node2 = conf.createNode("test2");
- Collection<ConfigurationNode> nodes = new ArrayList<ConfigurationNode>(2);
- nodes.add(node);
- nodes.add(node2);
- conf.addNodes("add.nodes", nodes);
+ ImmutableNode.Builder bldrNode = new ImmutableNode.Builder(1);
+ bldrNode.addChild(NodeStructureHelper.createNode("child", null));
+ bldrNode.addAttribute("attr", "");
+ ImmutableNode node2 = NodeStructureHelper.createNode("test2", null);
+ conf.addNodes("add.nodes",
+ Arrays.asList(bldrNode.name("test").create(), node2));
saveTestConfig();
conf.setProperty("add.nodes.test", "true");
conf.setProperty("add.nodes.test.child", "yes");
@@ -1350,7 +1337,8 @@ public class TestXMLConfiguration
public void testSaveAfterCreateWithCopyConstructor()
throws ConfigurationException
{
- HierarchicalConfiguration hc = conf.configurationAt("element2");
+ HierarchicalConfiguration<ImmutableNode> hc =
+ conf.configurationAt("element2");
conf = new XMLConfiguration(hc);
saveTestConfig();
XMLConfiguration checkConfig = checkSavedConfig();
@@ -1401,25 +1389,15 @@ public class TestXMLConfiguration
}
/**
- * Tests adding an attribute node using the addNodes() method.
+ * Tests the copy constructor for null input.
*/
@Test
- public void testAddNodesAttributeNode()
+ public void testCopyNull()
{
- conf.addProperty("testAddNodes.property[@name]", "prop1");
- conf.addProperty("testAddNodes.property(0).value", "value1");
- conf.addProperty("testAddNodes.property(-1)[@name]", "prop2");
- conf.addProperty("testAddNodes.property(1).value", "value2");
- Collection<ConfigurationNode> nodes = new ArrayList<ConfigurationNode>();
- nodes.add(new DefaultConfigurationNode("property"));
- conf.addNodes("testAddNodes", nodes);
- nodes.clear();
- ConfigurationNode nd = new DefaultConfigurationNode("name", "prop3");
- nd.setAttribute(true);
- nodes.add(nd);
- conf.addNodes("testAddNodes.property(2)", nodes);
- assertEquals("Attribute not added", "prop3", conf
- .getString("testAddNodes.property(2)[@name]"));
+ conf = new XMLConfiguration(null);
+ assertTrue("Not empty", conf.isEmpty());
+ assertEquals("Wrong root element name", "configuration",
+ conf.getRootElementName());
}
/**
@@ -1558,8 +1536,8 @@ public class TestXMLConfiguration
StringWriter writer = new StringWriter();
new FileHandler(conf).save(writer);
String content = writer.toString();
- assertTrue("Path not found: " + content,
- content.indexOf("<path>C:\\Temp</path>") >= 0);
+ assertThat("Path not found: ", content,
+ containsString("<path>C:\\Temp</path>"));
saveTestConfig();
XMLConfiguration conf2 = new XMLConfiguration();
load(conf2, testSaveConf.getAbsolutePath());
@@ -1593,13 +1571,11 @@ public class TestXMLConfiguration
@Test
public void testAddNodesToSubnodeConfiguration() throws Exception
{
- SubnodeConfiguration sub = conf.configurationAt("element2");
+ HierarchicalConfiguration<ImmutableNode> sub =
+ conf.configurationAt("element2", true);
sub.addProperty("newKey", "newvalue");
- ConfigurationNode root = conf.getRootNode();
- ConfigurationNode elem = root.getChildren("element2").get(0);
- ConfigurationNode newNode = elem.getChildren("newKey").get(0);
- assertTrue("Wrong node type: " + newNode,
- newNode instanceof XMLConfiguration.XMLNode);
+ assertEquals("Property not added", "newvalue",
+ conf.getString("element2.newKey"));
}
/**
@@ -1666,18 +1642,6 @@ public class TestXMLConfiguration
}
/**
- * Tests whether access to the document is synchronized.
- */
- @Test
- public void testGetDocumentSynchronized()
- {
- SynchronizerTestImpl sync = new SynchronizerTestImpl();
- conf.setSynchronizer(sync);
- assertNotNull("No document", conf.getDocument());
- sync.verify(Methods.BEGIN_READ, Methods.END_READ);
- }
-
- /**
* Removes the test output file if it exists.
*/
private void removeTestFile()
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/beanutils/TestXMLBeanDeclaration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/beanutils/TestXMLBeanDeclaration.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/beanutils/TestXMLBeanDeclaration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/beanutils/TestXMLBeanDeclaration.java Sun Apr 20 19:32:08 2014
@@ -28,8 +28,7 @@ import java.util.Map;
import org.apache.commons.configuration.BaseHierarchicalConfiguration;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.configuration.SubnodeConfiguration;
-import org.apache.commons.configuration.tree.ConfigurationNode;
+import org.apache.commons.configuration.ex.ConfigurationRuntimeException;
import org.junit.Test;
/**
@@ -92,24 +91,13 @@ public class TestXMLBeanDeclaration
private static final String VARS = "variables.";
/**
- * Tests creating a declaration from a null node. This should cause an
- * exception.
- */
- @Test(expected = IllegalArgumentException.class)
- public void testInitFromNullNode()
- {
- new XMLBeanDeclaration(new BaseHierarchicalConfiguration().configurationAt(null),
- (ConfigurationNode) null);
- }
-
- /**
* Tests creating a declaration from a null configuration. This should cause
* an exception.
*/
@Test(expected = IllegalArgumentException.class)
public void testInitFromNullConfiguration()
{
- new XMLBeanDeclaration((HierarchicalConfiguration) null);
+ new XMLBeanDeclaration(null);
}
/**
@@ -123,17 +111,6 @@ public class TestXMLBeanDeclaration
}
/**
- * Tests creating a declaration from a null configuration with a node. This
- * should cause an exception.
- */
- @Test(expected = IllegalArgumentException.class)
- public void testInitFromNullConfigurationAndNode()
- {
- new XMLBeanDeclaration(null, new BaseHierarchicalConfiguration()
- .getRootNode());
- }
-
- /**
* Tests fetching the bean's class name.
*/
@Test
@@ -157,6 +134,18 @@ public class TestXMLBeanDeclaration
}
/**
+ * Tests that a missing bean class name does not cause an exception.
+ */
+ @Test
+ public void testGetBeanClassNameUndefinedWithEx()
+ {
+ BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ config.setThrowExceptionOnMissing(true);
+ XMLBeanDeclaration decl = new XMLBeanDeclaration(config);
+ assertNull("Got a bean class name", decl.getBeanClassName());
+ }
+
+ /**
* Tests whether a default bean class name is taken into account.
*/
@Test
@@ -212,6 +201,18 @@ public class TestXMLBeanDeclaration
}
/**
+ * Tests that a missing bean factory name does not throw an exception.
+ */
+ @Test
+ public void testGetBeanFactoryNameUndefinedWithEx()
+ {
+ BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ config.setThrowExceptionOnMissing(true);
+ XMLBeanDeclaration decl = new XMLBeanDeclaration(config);
+ assertNull("Got a factory name", decl.getBeanFactoryName());
+ }
+
+ /**
* Tests fetching the parameter for the bean factory.
*/
@Test
@@ -237,6 +238,18 @@ public class TestXMLBeanDeclaration
}
/**
+ * Tests that an undefined bean factory parameter does not cause an exception.
+ */
+ @Test
+ public void testGetBeanFactoryParameterUndefinedWithEx()
+ {
+ BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ config.setThrowExceptionOnMissing(true);
+ XMLBeanDeclaration decl = new XMLBeanDeclaration(config);
+ assertNull("Got a factory parameter", decl.getBeanFactoryParameter());
+ }
+
+ /**
* Tests if the bean's properties are correctly extracted from the
* configuration object.
*/
@@ -278,9 +291,10 @@ public class TestXMLBeanDeclaration
/**
* Creates a configuration with data for testing nested bean declarations
* including constructor arguments.
+ *
* @return the initialized test configuration
*/
- private HierarchicalConfiguration prepareNestedBeanDeclarations()
+ private static BaseHierarchicalConfiguration prepareNestedBeanDeclarations()
{
BaseHierarchicalConfiguration config =
new BaseHierarchicalConfiguration();
@@ -308,7 +322,7 @@ public class TestXMLBeanDeclaration
@Test
public void testGetNestedBeanDeclarations()
{
- HierarchicalConfiguration config = prepareNestedBeanDeclarations();
+ BaseHierarchicalConfiguration config = prepareNestedBeanDeclarations();
XMLBeanDeclaration decl = new XMLBeanDeclaration(config, KEY);
checkProperties(decl, TEST_PROPS, TEST_VALUES);
@@ -333,15 +347,14 @@ public class TestXMLBeanDeclaration
@Test
public void testGetNestedBeanDeclarationsFactoryMethod()
{
- HierarchicalConfiguration config = prepareNestedBeanDeclarations();
+ BaseHierarchicalConfiguration config = prepareNestedBeanDeclarations();
XMLBeanDeclaration decl = new XMLBeanDeclaration(config, KEY)
{
@Override
- protected BeanDeclaration createBeanDeclaration(
- ConfigurationNode node)
+ BeanDeclaration createBeanDeclaration(NodeData<?> node)
{
return new XMLBeanDeclarationTestImpl(getConfiguration()
- .configurationAt(node.getName()), node);
+ .configurationAt(node.nodeName()), node);
}
};
Map<String, Object> nested = decl.getNestedBeanDeclarations();
@@ -388,7 +401,7 @@ public class TestXMLBeanDeclaration
* Tests constructing a bean declaration from an undefined key. This should
* cause an exception.
*/
- @Test(expected = IllegalArgumentException.class)
+ @Test(expected = ConfigurationRuntimeException.class)
public void testInitFromUndefinedKey()
{
BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
@@ -415,7 +428,7 @@ public class TestXMLBeanDeclaration
* Tests constructing a bean declaration from a key with multiple values.
* This should cause an exception because keys must be unique.
*/
- @Test(expected = IllegalArgumentException.class)
+ @Test(expected = ConfigurationRuntimeException.class)
public void testInitFromMultiValueKey()
{
BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
@@ -430,7 +443,7 @@ public class TestXMLBeanDeclaration
@Test
public void testGetConstructorArgs()
{
- HierarchicalConfiguration config = prepareNestedBeanDeclarations();
+ BaseHierarchicalConfiguration config = prepareNestedBeanDeclarations();
XMLBeanDeclaration decl = new XMLBeanDeclaration(config, KEY);
Collection<ConstructorArg> args = decl.getConstructorArgs();
assertEquals("Wrong number of constructor arguments", 2, args.size());
@@ -454,7 +467,7 @@ public class TestXMLBeanDeclaration
@Test
public void testGetConstructorArgsNullArg()
{
- HierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
setupBeanDeclaration(config, KEY, TEST_PROPS, TEST_VALUES);
config.addProperty(KEY + ".config-constrarg", "");
XMLBeanDeclaration decl = new XMLBeanDeclaration(config, KEY);
@@ -471,7 +484,7 @@ public class TestXMLBeanDeclaration
@Test
public void testGetInterpolatedConstructorArgs()
{
- HierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
String expectedValue = "ctorArg";
config.addProperty("value", expectedValue);
setupBeanDeclaration(config, KEY, TEST_PROPS, TEST_VALUES);
@@ -488,7 +501,7 @@ public class TestXMLBeanDeclaration
@Test
public void testInterpolateNoInterpolator()
{
- HierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
config.addProperty("value", "expectedValue");
setupBeanDeclaration(config, KEY, TEST_PROPS, TEST_VALUES);
String value = "${value}";
@@ -509,7 +522,7 @@ public class TestXMLBeanDeclaration
* @param names an array with the names of the properties
* @param values an array with the corresponding values
*/
- private void setupBeanDeclaration(HierarchicalConfiguration config,
+ private static void setupBeanDeclaration(HierarchicalConfiguration config,
String key, String[] names, String[] values)
{
for (int i = 0; i < names.length; i++)
@@ -525,7 +538,7 @@ public class TestXMLBeanDeclaration
* @param names an array with the expected property names
* @param values an array with the expected property values
*/
- private void checkProperties(BeanDeclaration beanDecl, String[] names,
+ private static void checkProperties(BeanDeclaration beanDecl, String[] names,
String[] values)
{
Map<String, Object> props = beanDecl.getBeanProperties();
@@ -545,8 +558,8 @@ public class TestXMLBeanDeclaration
*/
private static class XMLBeanDeclarationTestImpl extends XMLBeanDeclaration
{
- public XMLBeanDeclarationTestImpl(SubnodeConfiguration config,
- ConfigurationNode node)
+ public XMLBeanDeclarationTestImpl(HierarchicalConfiguration<?> config,
+ NodeData<?> node)
{
super(config, node);
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilder.java Sun Apr 20 19:32:08 2014
@@ -44,7 +44,6 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.DynamicCombinedConfiguration;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.configuration.PropertiesConfiguration;
-import org.apache.commons.configuration.SubnodeConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.XMLPropertiesConfiguration;
import org.apache.commons.configuration.builder.BasicConfigurationBuilder;
@@ -74,6 +73,7 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.reloading.ReloadingController;
import org.apache.commons.configuration.reloading.ReloadingControllerSupport;
import org.apache.commons.configuration.resolver.CatalogResolver;
+import org.apache.commons.configuration.tree.ImmutableNode;
import org.apache.commons.configuration.tree.xpath.XPathExpressionEngine;
import org.easymock.EasyMock;
import org.junit.After;
@@ -133,8 +133,8 @@ public class TestCombinedConfigurationBu
* @param defConfig the definition configuration
* @return the definition builder
*/
- protected static BasicConfigurationBuilder<? extends HierarchicalConfiguration> createDefinitionBuilder(
- HierarchicalConfiguration defConfig)
+ protected static BasicConfigurationBuilder<? extends BaseHierarchicalConfiguration> createDefinitionBuilder(
+ BaseHierarchicalConfiguration defConfig)
{
return new ConstantConfigurationBuilder(defConfig);
}
@@ -148,10 +148,10 @@ public class TestCombinedConfigurationBu
* @param attrs the attributes of this tag
* @return the definition configuration
*/
- protected static HierarchicalConfiguration createDefinitionConfig(String tag,
+ protected static BaseHierarchicalConfiguration createDefinitionConfig(String tag,
Map<String, Object> attrs)
{
- HierarchicalConfiguration defConfig =
+ BaseHierarchicalConfiguration defConfig =
new BaseHierarchicalConfiguration();
String prefix = "override." + tag;
for (Map.Entry<String, Object> e : attrs.entrySet())
@@ -332,9 +332,9 @@ public class TestCombinedConfigurationBu
attrs.put("config-name", name);
attrs.put("config-optional", Boolean.TRUE);
attrs.put("config-forceCreate", Boolean.TRUE);
- HierarchicalConfiguration defConfig =
+ BaseHierarchicalConfiguration defConfig =
createDefinitionConfig("xml", attrs);
- BasicConfigurationBuilder<? extends HierarchicalConfiguration> defBuilder =
+ BasicConfigurationBuilder<? extends BaseHierarchicalConfiguration> defBuilder =
createDefinitionBuilder(defConfig);
builder.configure(new CombinedBuilderParametersImpl()
.setDefinitionBuilder(defBuilder));
@@ -439,14 +439,14 @@ public class TestCombinedConfigurationBu
* @param attrs the map with attributes
* @return the definition builder
*/
- private BasicConfigurationBuilder<? extends HierarchicalConfiguration> prepareSubBuilderTest(
+ private BasicConfigurationBuilder<? extends HierarchicalConfiguration<ImmutableNode>> prepareSubBuilderTest(
Map<String, Object> attrs)
{
attrs.put("fileName", TEST_SUB_XML);
attrs.put("config-name", BUILDER_NAME);
- HierarchicalConfiguration defConfig =
+ BaseHierarchicalConfiguration defConfig =
createDefinitionConfig("xml", attrs);
- BasicConfigurationBuilder<? extends HierarchicalConfiguration> defBuilder =
+ BasicConfigurationBuilder<? extends HierarchicalConfiguration<ImmutableNode>> defBuilder =
createDefinitionBuilder(defConfig);
builder.configure(new CombinedBuilderParametersImpl()
.setDefinitionBuilder(defBuilder));
@@ -461,7 +461,7 @@ public class TestCombinedConfigurationBu
public void testResetBuilder() throws ConfigurationException
{
Map<String, Object> attrs = new HashMap<String, Object>();
- BasicConfigurationBuilder<? extends HierarchicalConfiguration> defBuilder =
+ BasicConfigurationBuilder<? extends HierarchicalConfiguration<ImmutableNode>> defBuilder =
prepareSubBuilderTest(attrs);
CombinedConfiguration cc = builder.getConfiguration();
ConfigurationBuilder<? extends Configuration> subBuilder =
@@ -616,7 +616,7 @@ public class TestCombinedConfigurationBu
public void testCustomBuilderProvider() throws ConfigurationException
{
String tagName = "myTestTag";
- final HierarchicalConfiguration dataConf =
+ final BaseHierarchicalConfiguration dataConf =
new BaseHierarchicalConfiguration();
dataConf.addProperty(tagName, Boolean.TRUE);
Map<String, Object> attrs = new HashMap<String, Object>();
@@ -757,7 +757,7 @@ public class TestCombinedConfigurationBu
public void testConfigureEntityResolverWithProperties()
throws ConfigurationException
{
- HierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ HierarchicalConfiguration<ImmutableNode> config = new BaseHierarchicalConfiguration();
config.addProperty("header.entity-resolver[@config-class]",
EntityResolverWithPropertiesTestImpl.class.getName());
XMLBuilderParametersImpl xmlParams = new XMLBuilderParametersImpl();
@@ -784,6 +784,7 @@ public class TestCombinedConfigurationBu
{
builder.configure(createParameters().setFile(fsFile));
builder.getConfiguration();
+ @SuppressWarnings("unchecked") // this is the minimum bound for type arguments
FileBasedConfigurationBuilder<? extends Configuration> xmlBuilder =
(FileBasedConfigurationBuilder<? extends Configuration>) builder
.getNamedBuilder("xml");
@@ -866,7 +867,7 @@ public class TestCombinedConfigurationBu
public void testBasePathForChildConfigurations()
throws ConfigurationException
{
- HierarchicalConfiguration defConfig =
+ BaseHierarchicalConfiguration defConfig =
new BaseHierarchicalConfiguration();
defConfig.addProperty("properties[@fileName]", "test.properties");
File deepDir = new File(ConfigurationAssert.TEST_DIR, "config/deep");
@@ -908,7 +909,7 @@ public class TestCombinedConfigurationBu
public void testConfigurationBuilderProvider()
throws ConfigurationException
{
- HierarchicalConfiguration defConfig =
+ BaseHierarchicalConfiguration defConfig =
new BaseHierarchicalConfiguration();
defConfig.addProperty("override.configuration[@fileName]",
TEST_FILE.getAbsolutePath());
@@ -1096,7 +1097,7 @@ public class TestCombinedConfigurationBu
(XMLConfiguration) combConfig.getConfiguration("test");
assertEquals("Wrong value from XML config", "abc-product",
xmlConfig.getString("products/product/desc"));
- SubnodeConfiguration subConfig =
+ HierarchicalConfiguration<ImmutableNode> subConfig =
xmlConfig
.configurationAt("products/product[@name='abc']", true);
assertEquals("Wrong value from sub config", "abc-product",
@@ -1161,8 +1162,8 @@ public class TestCombinedConfigurationBu
{
CombinedConfiguration config = createMultiFileConfig("testCCMultiTenent.xml");
switchToMultiFile("1001");
- HierarchicalConfiguration multiConf =
- (HierarchicalConfiguration) config
+ HierarchicalConfiguration<?> multiConf =
+ (HierarchicalConfiguration<?>) config
.getConfiguration("clientConfig");
assertTrue(
"Expression engine not configured",
@@ -1327,7 +1328,7 @@ public class TestCombinedConfigurationBu
public ConfigurationBuilder<? extends Configuration> getConfigurationBuilder(
ConfigurationDeclaration decl) throws ConfigurationException
{
- HierarchicalConfiguration config =
+ BaseHierarchicalConfiguration config =
new BaseHierarchicalConfiguration();
config.addProperty(getPropertyKey(), Boolean.TRUE);
return new ConstantConfigurationBuilder(config);
@@ -1338,18 +1339,18 @@ public class TestCombinedConfigurationBu
* A test builder class which always returns the same configuration.
*/
private static class ConstantConfigurationBuilder extends
- BasicConfigurationBuilder<HierarchicalConfiguration>
+ BasicConfigurationBuilder<BaseHierarchicalConfiguration>
{
- private final HierarchicalConfiguration configuration;
+ private final BaseHierarchicalConfiguration configuration;
- public ConstantConfigurationBuilder(HierarchicalConfiguration conf)
+ public ConstantConfigurationBuilder(BaseHierarchicalConfiguration conf)
{
- super(HierarchicalConfiguration.class);
+ super(BaseHierarchicalConfiguration.class);
configuration = conf;
}
@Override
- public HierarchicalConfiguration getConfiguration()
+ public BaseHierarchicalConfiguration getConfiguration()
throws ConfigurationException
{
return configuration;
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilderVFS.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilderVFS.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilderVFS.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestCombinedConfigurationBuilderVFS.java Sun Apr 20 19:32:08 2014
@@ -22,6 +22,7 @@ import java.io.File;
import java.util.HashMap;
import java.util.Map;
+import org.apache.commons.configuration.BaseHierarchicalConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationAssert;
import org.apache.commons.configuration.HierarchicalConfiguration;
@@ -29,6 +30,7 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.builder.fluent.FileBasedBuilderParameters;
import org.apache.commons.configuration.ex.ConfigurationException;
import org.apache.commons.configuration.io.VFSFileSystem;
+import org.apache.commons.configuration.tree.ImmutableNode;
import org.junit.Test;
/**
@@ -60,11 +62,11 @@ public class TestCombinedConfigurationBu
File deepDir = new File(ConfigurationAssert.TEST_DIR, "config/deep");
Map<String, Object> params = new HashMap<String, Object>();
params.put("fileName", "test.properties");
- HierarchicalConfiguration defConfig =
+ BaseHierarchicalConfiguration defConfig =
createDefinitionConfig("properties", params);
defConfig.addProperty("override.properties.fileSystem[@config-class]",
VFSFileSystem.class.getName());
- BasicConfigurationBuilder<? extends HierarchicalConfiguration> defBuilder =
+ BasicConfigurationBuilder<? extends HierarchicalConfiguration<ImmutableNode>> defBuilder =
createDefinitionBuilder(defConfig);
builder.configure(new CombinedBuilderParametersImpl()
.setDefinitionBuilder(defBuilder).setBasePath(
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestConfigurationDeclaration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestConfigurationDeclaration.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestConfigurationDeclaration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestConfigurationDeclaration.java Sun Apr 20 19:32:08 2014
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertTru
import org.apache.commons.configuration.BaseHierarchicalConfiguration;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.configuration.ex.ConfigurationRuntimeException;
-import org.apache.commons.configuration.tree.DefaultConfigurationNode;
import org.junit.Test;
/**
@@ -42,9 +41,9 @@ public class TestConfigurationDeclaratio
* @return the test object
*/
private static ConfigurationDeclaration createDeclaration(
- HierarchicalConfiguration conf)
+ HierarchicalConfiguration<?> conf)
{
- HierarchicalConfiguration config =
+ HierarchicalConfiguration<?> config =
(conf != null) ? conf : new BaseHierarchicalConfiguration();
return new ConfigurationDeclaration(null, config);
}
@@ -56,23 +55,11 @@ public class TestConfigurationDeclaratio
public void testConfigurationDeclarationIsReserved()
{
ConfigurationDeclaration decl = createDeclaration(null);
- DefaultConfigurationNode parent = new DefaultConfigurationNode();
- DefaultConfigurationNode nd = new DefaultConfigurationNode("at");
- parent.addAttribute(nd);
- assertTrue("Attribute at not recognized", decl.isReservedNode(nd));
- nd = new DefaultConfigurationNode("optional");
- parent.addAttribute(nd);
- assertTrue("Attribute optional not recognized", decl.isReservedNode(nd));
- nd = new DefaultConfigurationNode("config-class");
- parent.addAttribute(nd);
+ assertTrue("Attribute at not recognized", decl.isReservedAttributeName("at"));
+ assertTrue("Attribute optional not recognized", decl.isReservedAttributeName("optional"));
assertTrue("Inherited attribute not recognized",
- decl.isReservedNode(nd));
- nd = new DefaultConfigurationNode("different");
- parent.addAttribute(nd);
- assertFalse("Wrong reserved attribute", decl.isReservedNode(nd));
- nd = new DefaultConfigurationNode("at");
- parent.addChild(nd);
- assertFalse("Node type not evaluated", decl.isReservedNode(nd));
+ decl.isReservedAttributeName("config-class"));
+ assertFalse("Wrong reserved attribute", decl.isReservedAttributeName("different"));
}
/**
@@ -104,19 +91,17 @@ public class TestConfigurationDeclaratio
*/
private void checkOldReservedAttribute(String name)
{
- ConfigurationDeclaration decl = createDeclaration(null);
- DefaultConfigurationNode parent = new DefaultConfigurationNode();
- DefaultConfigurationNode nd =
- new DefaultConfigurationNode("config-" + name);
- parent.addAttribute(nd);
- assertTrue("config-" + name + " attribute not recognized",
- decl.isReservedNode(nd));
- DefaultConfigurationNode nd2 = new DefaultConfigurationNode(name);
- parent.addAttribute(nd2);
+ String prefixName = "config-" + name;
+ BaseHierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ config.addProperty(String.format("[@%s]", prefixName), Boolean.TRUE);
+ ConfigurationDeclaration decl = createDeclaration(config);
+ assertTrue(prefixName + " attribute not recognized",
+ decl.isReservedAttributeName(prefixName));
+ config.addProperty(String.format("[@%s]", name), Boolean.TRUE);
assertFalse(name + " is reserved though config- exists",
- decl.isReservedNode(nd2));
+ decl.isReservedAttributeName(name));
assertTrue("config- attribute not recognized when " + name + " exists",
- decl.isReservedNode(nd));
+ decl.isReservedAttributeName(prefixName));
}
/**
@@ -126,26 +111,32 @@ public class TestConfigurationDeclaratio
@Test
public void testConfigurationDeclarationGetAttributes()
{
- HierarchicalConfiguration config = new BaseHierarchicalConfiguration();
+ HierarchicalConfiguration<?> config = new BaseHierarchicalConfiguration();
config.addProperty("xml.fileName", "test.xml");
ConfigurationDeclaration decl =
createDeclaration(config.configurationAt("xml"));
assertNull("Found an at attribute", decl.getAt());
assertFalse("Found an optional attribute", decl.isOptional());
config.addProperty("xml[@config-at]", "test1");
+ decl = createDeclaration(config.configurationAt("xml"));
assertEquals("Wrong value of at attribute", "test1", decl.getAt());
config.addProperty("xml[@at]", "test2");
+ decl = createDeclaration(config.configurationAt("xml"));
assertEquals("Wrong value of config-at attribute", "test1",
decl.getAt());
config.clearProperty("xml[@config-at]");
+ decl = createDeclaration(config.configurationAt("xml"));
assertEquals("Old at attribute not detected", "test2", decl.getAt());
config.addProperty("xml[@config-optional]", "true");
+ decl = createDeclaration(config.configurationAt("xml"));
assertTrue("Wrong value of optional attribute", decl.isOptional());
config.addProperty("xml[@optional]", "false");
+ decl = createDeclaration(config.configurationAt("xml"));
assertTrue("Wrong value of config-optional attribute",
decl.isOptional());
config.clearProperty("xml[@config-optional]");
config.setProperty("xml[@optional]", Boolean.TRUE);
+ decl = createDeclaration(config.configurationAt("xml"));
assertTrue("Old optional attribute not detected", decl.isOptional());
}
@@ -155,11 +146,11 @@ public class TestConfigurationDeclaratio
@Test(expected = ConfigurationRuntimeException.class)
public void testConfigurationDeclarationOptionalAttributeInvalid()
{
- HierarchicalConfiguration factory = new BaseHierarchicalConfiguration();
+ HierarchicalConfiguration<?> factory = new BaseHierarchicalConfiguration();
factory.addProperty("xml.fileName", "test.xml");
+ factory.setProperty("xml[@optional]", "invalid value");
ConfigurationDeclaration decl =
createDeclaration(factory.configurationAt("xml"));
- factory.setProperty("xml[@optional]", "invalid value");
decl.isOptional();
}
}
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestReloadingCombinedConfigurationBuilderFileBased.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestReloadingCombinedConfigurationBuilderFileBased.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestReloadingCombinedConfigurationBuilderFileBased.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/builder/combined/TestReloadingCombinedConfigurationBuilderFileBased.java Sun Apr 20 19:32:08 2014
@@ -28,7 +28,6 @@ import java.text.MessageFormat;
import org.apache.commons.configuration.BaseHierarchicalConfiguration;
import org.apache.commons.configuration.CombinedConfiguration;
import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.builder.BasicBuilderParameters;
import org.apache.commons.configuration.builder.BasicBuilderProperties;
@@ -155,9 +154,7 @@ public class TestReloadingCombinedConfig
throws IOException
{
return writeReloadFile(f,
- MessageFormat.format(RELOAD_CONTENT, new Object[] {
- value, tagIdx
- }));
+ MessageFormat.format(RELOAD_CONTENT, value, tagIdx));
}
/**
@@ -191,7 +188,7 @@ public class TestReloadingCombinedConfig
return new AlwaysReloadingDetector();
}
};
- HierarchicalConfiguration defConf = new BaseHierarchicalConfiguration();
+ BaseHierarchicalConfiguration defConf = new BaseHierarchicalConfiguration();
addReloadSource(defConf, xmlConf1.getAbsolutePath());
addReloadSource(defConf, xmlConf2.getAbsolutePath());
builder.configure(parameters
@@ -245,7 +242,7 @@ public class TestReloadingCombinedConfig
return new RandomReloadingDetector();
}
};
- HierarchicalConfiguration defConf = new BaseHierarchicalConfiguration();
+ BaseHierarchicalConfiguration defConf = new BaseHierarchicalConfiguration();
defConf.addProperty("header.result.nodeCombiner[@config-class]",
MergeCombiner.class.getName());
defConf.addProperty("header.result.expressionEngine[@config-class]",
@@ -375,18 +372,18 @@ public class TestReloadingCombinedConfig
* A test builder class which always returns the same configuration.
*/
private static class ConstantConfigurationBuilder extends
- BasicConfigurationBuilder<HierarchicalConfiguration>
+ BasicConfigurationBuilder<BaseHierarchicalConfiguration>
{
- private final HierarchicalConfiguration configuration;
+ private final BaseHierarchicalConfiguration configuration;
- public ConstantConfigurationBuilder(HierarchicalConfiguration conf)
+ public ConstantConfigurationBuilder(BaseHierarchicalConfiguration conf)
{
- super(HierarchicalConfiguration.class);
+ super(BaseHierarchicalConfiguration.class);
configuration = conf;
}
@Override
- public HierarchicalConfiguration getConfiguration()
+ public BaseHierarchicalConfiguration getConfiguration()
throws ConfigurationException
{
return configuration;
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDisabledListDelimiterHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDisabledListDelimiterHandler.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDisabledListDelimiterHandler.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/convert/TestDisabledListDelimiterHandler.java Sun Apr 20 19:32:08 2014
@@ -54,12 +54,13 @@ public class TestDisabledListDelimiterHa
}
/**
- * Checks whether the passed in iterator contains the expected values.
+ * Checks whether the passed in container contains the expected values.
*
- * @param it the iterator to test
+ * @param container the iterator to test
*/
- private static void checkIterator(Iterator<?> it)
+ private static void checkIterator(Iterable<?> container)
{
+ Iterator<?> it = container.iterator();
for (Object o : VALUES)
{
assertEquals("Wrong value", o, it.next());
@@ -100,7 +101,7 @@ public class TestDisabledListDelimiterHa
@Test
public void testParseSimpleValue()
{
- Iterator<?> it = handler.parse(STR_VALUE);
+ Iterator<?> it = handler.parse(STR_VALUE).iterator();
assertEquals("Wrong value", STR_VALUE, it.next());
assertFalse("Too many values", it.hasNext());
}
@@ -111,7 +112,7 @@ public class TestDisabledListDelimiterHa
@Test
public void testParseNull()
{
- assertFalse("Got a value", handler.parse(null).hasNext());
+ assertFalse("Got a value", handler.parse(null).iterator().hasNext());
}
/**
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestHierarchicalConfigurationEvents.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestHierarchicalConfigurationEvents.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestHierarchicalConfigurationEvents.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/event/TestHierarchicalConfigurationEvents.java Sun Apr 20 19:32:08 2014
@@ -25,9 +25,9 @@ import java.util.Collection;
import org.apache.commons.configuration.AbstractConfiguration;
import org.apache.commons.configuration.BaseHierarchicalConfiguration;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.commons.configuration.SubnodeConfiguration;
-import org.apache.commons.configuration.tree.ConfigurationNode;
-import org.apache.commons.configuration.tree.DefaultConfigurationNode;
+import org.apache.commons.configuration.tree.ImmutableNode;
+import org.apache.commons.configuration.tree.NodeStructureHelper;
+import org.apache.commons.configuration.tree.QueryResult;
import org.junit.Test;
/**
@@ -50,10 +50,10 @@ public class TestHierarchicalConfigurati
@Test
public void testClearTreeEvent()
{
- HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
+ BaseHierarchicalConfiguration hc = (BaseHierarchicalConfiguration) config;
String key = EXIST_PROPERTY.substring(0, EXIST_PROPERTY.indexOf('.'));
- Collection<ConfigurationNode> nodes = hc.getExpressionEngine()
- .query(hc.getRootNode(), key);
+ Collection<QueryResult<ImmutableNode>> nodes = hc.getExpressionEngine()
+ .query(hc.getRootNode(), key, hc.getNodeModel().getNodeHandler());
hc.clearTree(key);
l.checkEvent(BaseHierarchicalConfiguration.EVENT_CLEAR_TREE, key, null,
true);
@@ -68,9 +68,9 @@ public class TestHierarchicalConfigurati
@Test
public void testAddNodesEvent()
{
- HierarchicalConfiguration hc = (HierarchicalConfiguration) config;
- Collection<ConfigurationNode> nodes = new ArrayList<ConfigurationNode>(1);
- nodes.add(new DefaultConfigurationNode("a_key", TEST_PROPVALUE));
+ BaseHierarchicalConfiguration hc = (BaseHierarchicalConfiguration) config;
+ Collection<ImmutableNode> nodes = new ArrayList<ImmutableNode>(1);
+ nodes.add(NodeStructureHelper.createNode("a_key", TEST_PROPVALUE));
hc.addNodes(TEST_PROPNAME, nodes);
l.checkEvent(BaseHierarchicalConfiguration.EVENT_ADD_NODES, TEST_PROPNAME,
nodes, true);
@@ -86,31 +86,45 @@ public class TestHierarchicalConfigurati
@Test
public void testAddNodesEmptyEvent()
{
- ((HierarchicalConfiguration) config).addNodes(TEST_PROPNAME,
- new ArrayList<ConfigurationNode>());
+ ((BaseHierarchicalConfiguration) config).addNodes(TEST_PROPNAME,
+ new ArrayList<ImmutableNode>());
l.done();
}
/**
- * Tests whether manipulations of a subnode configuration trigger correct
+ * Tests whether manipulations of a connected sub configuration trigger correct
* events.
*/
@Test
- public void testSubnodeChangedEvent()
+ public void testSubConfigurationChangedEventConnected()
{
- SubnodeConfiguration sub = ((HierarchicalConfiguration) config)
- .configurationAt(EXIST_PROPERTY);
+ HierarchicalConfiguration<ImmutableNode> sub =
+ ((BaseHierarchicalConfiguration) config)
+ .configurationAt(EXIST_PROPERTY, true);
sub.addProperty("newProp", "newValue");
- checkSubnodeEvent(l
- .nextEvent(BaseHierarchicalConfiguration.EVENT_SUBNODE_CHANGED),
+ checkSubnodeEvent(
+ l.nextEvent(BaseHierarchicalConfiguration.EVENT_SUBNODE_CHANGED),
true);
- checkSubnodeEvent(l
- .nextEvent(BaseHierarchicalConfiguration.EVENT_SUBNODE_CHANGED),
+ checkSubnodeEvent(
+ l.nextEvent(BaseHierarchicalConfiguration.EVENT_SUBNODE_CHANGED),
false);
l.done();
}
/**
+ * Tests that no events are generated for a disconnected sub configuration.
+ */
+ @Test
+ public void testSubConfigurationChangedEventNotConnected()
+ {
+ HierarchicalConfiguration<ImmutableNode> sub =
+ ((BaseHierarchicalConfiguration) config)
+ .configurationAt(EXIST_PROPERTY);
+ sub.addProperty("newProp", "newValue");
+ l.done();
+ }
+
+ /**
* Tests whether a received event contains a correct subnode event.
*
* @param event the event object
Modified: commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java?rev=1588831&r1=1588830&r2=1588831&view=diff
==============================================================================
--- commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java (original)
+++ commons/proper/configuration/trunk/src/test/java/org/apache/commons/configuration/plist/TestPropertyListConfiguration.java Sun Apr 20 19:32:08 2014
@@ -38,9 +38,12 @@ import junitx.framework.ObjectAssert;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationAssert;
import org.apache.commons.configuration.ConfigurationComparator;
+import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.commons.configuration.StrictConfigurationComparator;
import org.apache.commons.configuration.ex.ConfigurationException;
import org.apache.commons.configuration.io.FileHandler;
+import org.apache.commons.configuration.tree.ImmutableNode;
+import org.apache.commons.configuration.tree.NodeHandler;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -222,7 +225,7 @@ public class TestPropertyListConfigurati
{
Calendar cal = Calendar.getInstance();
cal.clear();
- cal.set(2002, 2, 22, 11, 30, 0);
+ cal.set(2002, Calendar.MARCH, 22, 11, 30, 0);
cal.setTimeZone(TimeZone.getTimeZone("GMT+0100"));
Date date = cal.getTime();
@@ -311,8 +314,24 @@ public class TestPropertyListConfigurati
PropertyListConfiguration checkConfig = new PropertyListConfiguration();
load(checkConfig, savedFile);
- assertFalse(config.getRootNode().getChildren("empty-dictionary").isEmpty());
- assertFalse(checkConfig.getRootNode().getChildren("empty-dictionary").isEmpty());
+ assertFalse(getNamedChildren(config, "empty-dictionary").isEmpty());
+ assertFalse(getNamedChildren(checkConfig, "empty-dictionary").isEmpty());
+ }
+
+ /**
+ * Returns a list with the children of the given configuration's root note
+ * with the specified name.
+ *
+ * @param config the configuration
+ * @param name the name of the desired children
+ * @return the list with the corresponding child nodes
+ */
+ private static List<ImmutableNode> getNamedChildren(
+ HierarchicalConfiguration<ImmutableNode> config, String name)
+ {
+ NodeHandler<ImmutableNode> handler =
+ config.getNodeModel().getNodeHandler();
+ return handler.getChildren(handler.getRootNode(), name);
}
@Test
@@ -421,12 +440,12 @@ public class TestPropertyListConfigurati
{
Calendar cal = Calendar.getInstance();
cal.clear();
- cal.set(2007, 9, 29, 23, 4, 30);
+ cal.set(2007, Calendar.OCTOBER, 29, 23, 4, 30);
cal.setTimeZone(TimeZone.getTimeZone("GMT-0230"));
assertEquals("Wrong date literal (1)", "<*D2007-10-29 23:04:30 -0230>",
PropertyListConfiguration.formatDate(cal));
cal.clear();
- cal.set(2007, 9, 30, 22, 2, 15);
+ cal.set(2007, Calendar.OCTOBER, 30, 22, 2, 15);
cal.setTimeZone(TimeZone.getTimeZone("GMT+1111"));
assertEquals("Wrong date literal (2)", "<*D2007-10-30 22:02:15 +1111>",
PropertyListConfiguration.formatDate(cal));