@@ -21,6 +21,19 @@ func Test_getBoolFromKVOrDefault(t *testing.T) {
2121 assert .False (t , getBoolFromKVOrDefault (properties , "empty_value" , false ))
2222 assert .False (t , getBoolFromKVOrDefault (nil , "nil" , false ))
2323 assert .False (t , getBoolFromKVOrDefault (map [string ]string {}, "empty" , false ))
24+
25+ // Test with unquoted values (as stored by RawText())
26+ unquotedProperties := map [string ]string {
27+ "enabled" : "true" ,
28+ "disabled" : "false" ,
29+ "invalid" : "notabool" ,
30+ "empty_value" : "" ,
31+ }
32+
33+ assert .True (t , getBoolFromKVOrDefault (unquotedProperties , "enabled" , false ))
34+ assert .False (t , getBoolFromKVOrDefault (unquotedProperties , "disabled" , true ))
35+ assert .False (t , getBoolFromKVOrDefault (unquotedProperties , "invalid" , false ))
36+ assert .False (t , getBoolFromKVOrDefault (unquotedProperties , "empty_value" , false ))
2437}
2538
2639func Test_getStringFromKVOrDefault (t * testing.T ) {
@@ -34,6 +47,17 @@ func Test_getStringFromKVOrDefault(t *testing.T) {
3447 assert .Equal (t , "default" , getStringFromKVOrDefault (properties , "missing" , "default" ))
3548 assert .Equal (t , "default" , getStringFromKVOrDefault (nil , "nil" , "default" ))
3649 assert .Equal (t , "default" , getStringFromKVOrDefault (map [string ]string {}, "empty" , "default" ))
50+
51+ // Test with unquoted values (as stored by RawText())
52+ unquotedProperties := map [string ]string {
53+ "name" : "example" ,
54+ "title" : "Demo API" ,
55+ "empty" : "" ,
56+ }
57+
58+ assert .Equal (t , "example" , getStringFromKVOrDefault (unquotedProperties , "name" , "default" ))
59+ assert .Equal (t , "Demo API" , getStringFromKVOrDefault (unquotedProperties , "title" , "default" ))
60+ assert .Equal (t , "default" , getStringFromKVOrDefault (unquotedProperties , "empty" , "default" ))
3761}
3862
3963func Test_getListFromInfoOrDefault (t * testing.T ) {
@@ -50,4 +74,18 @@ func Test_getListFromInfoOrDefault(t *testing.T) {
5074 assert .Equal (t , []string {"default" }, getListFromInfoOrDefault (map [string ]string {
5175 "foo" : ",," ,
5276 }, "foo" , []string {"default" }))
77+
78+ // Test with unquoted values (as stored by RawText())
79+ unquotedProperties := map [string ]string {
80+ "list" : "a, b, c" ,
81+ "schemes" : "http,https" ,
82+ "tags" : "query" ,
83+ "empty" : "" ,
84+ }
85+
86+ // Note: FieldsAndTrimSpace doesn't actually trim the spaces from returned values
87+ assert .Equal (t , []string {"a" , " b" , " c" }, getListFromInfoOrDefault (unquotedProperties , "list" , []string {"default" }))
88+ assert .Equal (t , []string {"http" , "https" }, getListFromInfoOrDefault (unquotedProperties , "schemes" , []string {"default" }))
89+ assert .Equal (t , []string {"query" }, getListFromInfoOrDefault (unquotedProperties , "tags" , []string {"default" }))
90+ assert .Equal (t , []string {"default" }, getListFromInfoOrDefault (unquotedProperties , "empty" , []string {"default" }))
5391}
0 commit comments