@@ -3050,6 +3050,91 @@ func TestIPOrDefault(t *testing.T) {
30503050 }
30513051}
30523052
3053+ func TestIPSliceOrDefault (t * testing.T ) {
3054+ const rawDefault = "0.0.0.0"
3055+
3056+ type args struct {
3057+ key string
3058+ defaultVal []net.IP
3059+ separator string
3060+ }
3061+
3062+ type expected struct {
3063+ val []net.IP
3064+ }
3065+
3066+ var tests = []struct {
3067+ name string
3068+ precond precondition
3069+ args args
3070+ expected expected
3071+ }{
3072+ {
3073+ name : "env not set - default returned" ,
3074+ precond : precondition {
3075+ setenv : setenv {
3076+ isSet : false ,
3077+ val : "192.168.8.0,2001:cb8::17" ,
3078+ },
3079+ },
3080+ args : args {
3081+ key : testEnvKey ,
3082+ defaultVal : []net.IP {getIP (t , rawDefault )},
3083+ separator : "," ,
3084+ },
3085+ expected : expected {
3086+ val : []net.IP {getIP (t , rawDefault )},
3087+ },
3088+ },
3089+ {
3090+ name : "env set - env value returned" ,
3091+ precond : precondition {
3092+ setenv : setenv {
3093+ isSet : true ,
3094+ val : "192.168.8.0,2001:cb8::17" ,
3095+ },
3096+ },
3097+ args : args {
3098+ key : testEnvKey ,
3099+ defaultVal : []net.IP {getIP (t , rawDefault )},
3100+ separator : "," ,
3101+ },
3102+ expected : expected {
3103+ val : []net.IP {
3104+ getIP (t , "192.168.8.0" ),
3105+ getIP (t , "2001:cb8::17" ),
3106+ },
3107+ },
3108+ },
3109+ {
3110+ name : "empty env value set - default returned" ,
3111+ precond : precondition {
3112+ setenv : setenv {
3113+ isSet : true ,
3114+ val : "" ,
3115+ },
3116+ },
3117+ args : args {
3118+ key : testEnvKey ,
3119+ defaultVal : []net.IP {getIP (t , rawDefault )},
3120+ separator : "," ,
3121+ },
3122+ expected : expected {
3123+ val : []net.IP {getIP (t , rawDefault )},
3124+ },
3125+ },
3126+ }
3127+
3128+ for _ , tt := range tests {
3129+ t .Run (tt .name , func (t * testing.T ) {
3130+ tt .precond .maybeSetEnv (t , tt .args .key )
3131+
3132+ got := getenv .EnvOrDefault (tt .args .key , tt .args .defaultVal , option .WithSeparator (tt .args .separator ))
3133+ assert .Equal (t , tt .expected .val , got )
3134+ })
3135+ }
3136+ }
3137+
30533138func TestURLSliceOrDefault (t * testing.T ) {
30543139 type args struct {
30553140 key string
0 commit comments