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.
      */

Reply via email to