@@ -593,8 +593,10 @@ private static java.util.stream.Stream<Arguments> coreSchemaValuesArgs() {
593593 @ MethodSource ("envVarSubstitutionArgs" )
594594 void envSubstituteAndLoadYaml (String rawYaml , Object expectedYamlResult ) {
595595 Map <String , String > environmentVariables = new HashMap <>();
596+ environmentVariables .put ("FOO" , "BAR" );
596597 environmentVariables .put ("STR_1" , "value1" );
597598 environmentVariables .put ("STR_2" , "value2" );
599+ environmentVariables .put ("VALUE_WITH_ESCAPE" , "value$$" );
598600 environmentVariables .put ("EMPTY_STR" , "" );
599601 environmentVariables .put ("BOOL" , "true" );
600602 environmentVariables .put ("INT" , "1" );
@@ -657,7 +659,30 @@ private static java.util.stream.Stream<Arguments> envVarSubstitutionArgs() {
657659 Arguments .of ("key1: \" ${EMPTY_STR}\" \n " , mapOf (entry ("key1" , "" ))),
658660 Arguments .of ("key1: \" ${BOOL}\" \n " , mapOf (entry ("key1" , "true" ))),
659661 Arguments .of ("key1: \" ${INT}\" \n " , mapOf (entry ("key1" , "1" ))),
660- Arguments .of ("key1: \" ${FLOAT}\" \n " , mapOf (entry ("key1" , "1.1" ))));
662+ Arguments .of ("key1: \" ${FLOAT}\" \n " , mapOf (entry ("key1" , "1.1" ))),
663+ // Escaped
664+ Arguments .of ("key1: ${FOO}\n " , mapOf (entry ("key1" , "BAR" ))),
665+ Arguments .of ("key1: $${FOO}\n " , mapOf (entry ("key1" , "${FOO}" ))),
666+ Arguments .of ("key1: $$${FOO}\n " , mapOf (entry ("key1" , "$BAR" ))),
667+ Arguments .of ("key1: $$$${FOO}\n " , mapOf (entry ("key1" , "$${FOO}" ))),
668+ Arguments .of ("key1: a $$ b\n " , mapOf (entry ("key1" , "a $ b" ))),
669+ Arguments .of ("key1: $$ b\n " , mapOf (entry ("key1" , "$ b" ))),
670+ Arguments .of ("key1: a $$\n " , mapOf (entry ("key1" , "a $" ))),
671+ Arguments .of ("key1: a $ b\n " , mapOf (entry ("key1" , "a $ b" ))),
672+ Arguments .of ("key1: $${STR_1}\n " , mapOf (entry ("key1" , "${STR_1}" ))),
673+ Arguments .of ("key1: $${STR_1}$${STR_1}\n " , mapOf (entry ("key1" , "${STR_1}${STR_1}" ))),
674+ Arguments .of ("key1: $${STR_1}$$\n " , mapOf (entry ("key1" , "${STR_1}$" ))),
675+ Arguments .of ("key1: $$${STR_1}\n " , mapOf (entry ("key1" , "$value1" ))),
676+ Arguments .of ("key1: \" $${STR_1}\" \n " , mapOf (entry ("key1" , "${STR_1}" ))),
677+ Arguments .of ("key1: $${STR_1} ${STR_2}\n " , mapOf (entry ("key1" , "${STR_1} value2" ))),
678+ Arguments .of ("key1: $${STR_1} $${STR_2}\n " , mapOf (entry ("key1" , "${STR_1} ${STR_2}" ))),
679+ Arguments .of ("key1: $${NOT_SET:-value1}\n " , mapOf (entry ("key1" , "${NOT_SET:-value1}" ))),
680+ Arguments .of ("key1: $${STR_1:-fallback}\n " , mapOf (entry ("key1" , "${STR_1:-fallback}" ))),
681+ Arguments .of ("key1: $${STR_1:-${STR_1}}\n " , mapOf (entry ("key1" , "${STR_1:-value1}" ))),
682+ Arguments .of ("key1: ${NOT_SET:-${FALLBACK}}\n " , mapOf (entry ("key1" , "${FALLBACK}" ))),
683+ Arguments .of (
684+ "key1: ${NOT_SET:-$${FALLBACK}}\n " , mapOf (entry ("key1" , "${NOT_SET:-${FALLBACK}}" ))),
685+ Arguments .of ("key1: ${VALUE_WITH_ESCAPE}\n " , mapOf (entry ("key1" , "value$$" ))));
661686 }
662687
663688 private static <K , V > Map .Entry <K , V > entry (K key , @ Nullable V value ) {
0 commit comments