This is an automated email from the ASF dual-hosted git repository.
garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-configuration.git
The following commit(s) were added to refs/heads/master by this push:
new aa898b534 Add
TestConfigurationInterpolator.testInterpolationDefaultValueNestedDefault()
aa898b534 is described below
commit aa898b534e05e05b4746ce2c3713b684f028c054
Author: Gary Gregory <[email protected]>
AuthorDate: Wed Jul 8 15:43:23 2026 -0400
Add
TestConfigurationInterpolator.testInterpolationDefaultValueNestedDefault()
---
.../interpol/TestConfigurationInterpolator.java | 40 +++++++++++++++-------
1 file changed, 28 insertions(+), 12 deletions(-)
diff --git
a/src/test/java/org/apache/commons/configuration2/interpol/TestConfigurationInterpolator.java
b/src/test/java/org/apache/commons/configuration2/interpol/TestConfigurationInterpolator.java
index 461c48e50..721d3d9cc 100644
---
a/src/test/java/org/apache/commons/configuration2/interpol/TestConfigurationInterpolator.java
+++
b/src/test/java/org/apache/commons/configuration2/interpol/TestConfigurationInterpolator.java
@@ -467,6 +467,34 @@ public class TestConfigurationInterpolator {
assertTrue(result.matches("\\d{4}-\\d{2}-\\d{2}"));
}
+ @Test
+ void testInterpolationDefaultValueNestedDefault() {
+ final Object value = 42;
+ final String valueStr = Objects.toString(value);
+ final ConfigurationInterpolator confInt = new
ConfigurationInterpolator();
+ confInt.setEnableSubstitutionInVariables(true);
+ confInt.addDefaultLookup(setUpTestLookup(TEST_NAME, value));
+ assertEquals(valueStr, confInt.interpolate("${UnknownKey1:-${" +
TEST_NAME + ":-123}}"));
+ assertEquals(valueStr,
confInt.interpolate("${UnknownKey1:-${UnknownKey2:-${" + TEST_NAME +
":-123}}}"));
+ assertEquals(valueStr,
confInt.interpolate("${UnknownKey1:-${UnknownKey2:-${UnknownKey3:-${" +
TEST_NAME + ":-123}}}}"));
+ assertEquals("123",
confInt.interpolate("${UnknownKey1:-${UnknownKey2:-${UnknownKey3:-123}}}"));
+ }
+
+ /**
+ * Tests an interpolation that consists of a single undefined variable
only with and without a default value.
+ */
+ @Test
+ void testInterpolationDefaultValueSingleVariable() {
+ final Object value = 42;
+ final String valueStr = Objects.toString(value);
+ interpolator.addDefaultLookup(setUpTestLookup(TEST_NAME, value));
+ assertEquals("${I_am_not_defined}",
interpolator.interpolate("${I_am_not_defined}"));
+ assertEquals(valueStr,
interpolator.interpolate("${I_am_not_defined:-42}"));
+ assertEquals("", interpolator.interpolate("${I_am_not_defined:-}"));
+ assertEquals(value, interpolator.interpolate("${" + TEST_NAME + "}"));
+ assertEquals(valueStr, interpolator.interpolate("${" + TEST_NAME +
":-123}"));
+ }
+
/**
* Tests interpolation with multiple variables containing arrays.
*/
@@ -559,18 +587,6 @@ public class TestConfigurationInterpolator {
assertEquals(value, interpolator.interpolate("${" + TEST_NAME + "}"));
}
- /**
- * Tests an interpolation that consists of a single undefined variable
only with and without a default value.
- */
- @Test
- void testInterpolationSingleVariableDefaultValue() {
- final Object value = 42;
- interpolator.addDefaultLookup(setUpTestLookup(TEST_NAME, value));
- assertEquals("${I_am_not_defined}",
interpolator.interpolate("${I_am_not_defined}"));
- assertEquals("42",
interpolator.interpolate("${I_am_not_defined:-42}"));
- assertEquals("", interpolator.interpolate("${I_am_not_defined:-}"));
- }
-
/**
* Tests a variable declaration which lacks the trailing closing bracket.
*/