@@ -15,6 +15,7 @@ func testInterpolatedLine(t *testing.T, expectedLine, interpolatedLine string, e
1515 return envVariables [s ]
1616 })
1717
18+ fmt .Printf ("EXPECTED: %s and ACTUAL: %s\n " , expectedLine , interpolatedLine )
1819 assert .Equal (t , expectedLine , interpolatedLine )
1920}
2021
@@ -26,10 +27,25 @@ func testInvalidInterpolatedLine(t *testing.T, line string) {
2627 assert .Equal (t , false , success )
2728}
2829
29- func testInterpolatedDefault (t * testing.T , line string , delim string , expectedVar string , expectedVal string ) {
30- envVar , _ := parseLine (line , func (env string ) string { return env })
30+ func testInterpolatedDefault (t * testing.T , line string , delim string , expectedVar string , expectedVal string , envVariables map [string ]string ) {
31+ envVar , _ := parseLine (line , func (s string ) string {
32+ fmt .Printf ("request: %v\n " , s )
33+ if val , ok := envVariables [s ]; ok {
34+ return val
35+ }
36+ return s
37+ })
38+
3139 pos := strings .Index (line , delim )
32- envDefault , _ , _ := parseDefaultValue (line , pos )
40+ envDefault , _ , _ := parseDefaultValue (line , pos , func (s string ) string {
41+ fmt .Printf ("request: %v\n " , s )
42+ if val , ok := envVariables [s ]; ok {
43+ return val
44+ }
45+ return s
46+ })
47+ fmt .Printf ("EXPECTED: %s and ACTUAL: %s\n " , expectedVal , envDefault )
48+ fmt .Printf ("EXPECTED: %s and ACTUAL: %s\n " , expectedVar , envVar )
3349 assert .Equal (t , expectedVal , envDefault )
3450 assert .Equal (t , expectedVar , envVar )
3551}
@@ -45,16 +61,25 @@ func TestParseLine(t *testing.T) {
4561 "9aNumber" : "WORKED" ,
4662 "a9Number" : "WORKED" ,
4763 "defTest" : "WORKED" ,
64+ "test_domain" : "127.0.0.1:27017" ,
65+ "HOME" : "/home/foo" ,
66+ "test_tilde" : "~/.home/test" ,
4867 }
4968
50- testInterpolatedDefault (t , "${defVar:-defVal}" , ":-" , "defVar" , "defVal" )
51- testInterpolatedDefault (t , "${defVar2-defVal2}" , "-" , "defVar2" , "defVal2" )
52- testInterpolatedDefault (t , "${defVar:-def:Val}" , ":-" , "defVar" , "def:Val" )
53- testInterpolatedDefault (t , "${defVar:-def-Val}" , ":-" , "defVar" , "def-Val" )
69+ testInterpolatedDefault (t , "${defVar:-defVal}" , ":-" , "defVar" , "defVal" , variables )
70+ testInterpolatedDefault (t , "${defVar2-defVal2}" , "-" , "defVar2" , "defVal2" , variables )
71+ testInterpolatedDefault (t , "${defVar:-def:Val}" , ":-" , "defVar" , "def:Val" , variables )
72+ testInterpolatedDefault (t , "${defVar:-def-Val}" , ":-" , "defVar" , "def-Val" , variables )
73+ testInterpolatedDefault (t , "${defVar:-~/foo/bar}" , ":-" , "defVar" , "~/foo/bar" , variables )
74+ testInterpolatedDefault (t , "${defVar:-${HOME}/.bar/test}" , ":-" , "defVar" , "/home/foo/.bar/test" , variables )
75+ testInterpolatedDefault (t , "${defVar:-127.0.0.1:27017}" , ":-" , "defVar" , "127.0.0.1:27017" , variables )
5476
5577 testInterpolatedLine (t , "WORKED" , "$lower" , variables )
5678 testInterpolatedLine (t , "WORKED" , "${MiXeD}" , variables )
5779 testInterpolatedLine (t , "WORKED" , "${split_VaLue}" , variables )
80+ testInterpolatedLine (t , "127.0.0.1:27017" , "${test_domain}" , variables )
81+ testInterpolatedLine (t , "~/.home/test" , "${test_tilde}" , variables )
82+ testInterpolatedLine (t , "~/.home/test" , "${test_tilde}" , variables )
5883 // make sure variable name is parsed correctly with default value
5984 testInterpolatedLine (t , "WORKED" , "${defTest:-sometest}" , variables )
6085 testInterpolatedLine (t , "WORKED" , "${defTest-sometest}" , variables )
@@ -190,6 +215,8 @@ func TestInterpolate(t *testing.T) {
190215 # dictionary item value
191216 labels:
192217 mylabel: "myvalue=="
218+ domainlable: "127.0.0.1:27017"
219+ tildelabel: "~/.home/test"
193220
194221 # unset value
195222 hostname: "host-"
@@ -207,6 +234,8 @@ func TestInterpolate(t *testing.T) {
207234 # dictionary item value
208235 labels:
209236 mylabel: "${LABEL_VALUE}"
237+ domainlable: "${TEST_DOMAIN}"
238+ tildelabel: "${TILDE_DIR}"
210239
211240 # unset value
212241 hostname: "host-${UNSET_VALUE}"
@@ -215,6 +244,8 @@ func TestInterpolate(t *testing.T) {
215244 command: "$${ESCAPED}"` , map [string ]string {
216245 "IMAGE" : "=busybox" ,
217246 "HOST_PORT" : "=" ,
247+ "TEST_DOMAIN" : "127.0.0.1:27017" ,
248+ "TILDE_DIR" : "~/.home/test" ,
218249 "LABEL_VALUE" : "myvalue==" ,
219250 })
220251 // same as above but with default values
0 commit comments