@@ -36,3 +36,30 @@ func Test_GetStringVal(t *testing.T) {
36
36
assert .Equal (t , "invalid" , GetStringVal ("TEST_STRING_VAL" , "invalid" ))
37
37
})
38
38
}
39
+
40
+ func Test_ParseNumFromEnv (t * testing.T ) {
41
+ t .Run ("Get number from existing env var within range" , func (t * testing.T ) {
42
+ _ = os .Setenv ("TEST_NUM_VAL" , "5" )
43
+ defer os .Setenv ("TEST_NUM_VAL" , "" )
44
+ assert .Equal (t , 5 , ParseNumFromEnv ("TEST_NUM_VAL" , 0 , 1 , 10 ))
45
+ })
46
+ t .Run ("Get default value from non-existing env var" , func (t * testing.T ) {
47
+ _ = os .Setenv ("TEST_NUM_VAL" , "" )
48
+ assert .Equal (t , 10 , ParseNumFromEnv ("TEST_NUM_VAL" , 10 , 1 , 20 ))
49
+ })
50
+ t .Run ("Get default value from env var with non-numeric value" , func (t * testing.T ) {
51
+ _ = os .Setenv ("TEST_NUM_VAL" , "abc" )
52
+ defer os .Setenv ("TEST_NUM_VAL" , "" )
53
+ assert .Equal (t , 10 , ParseNumFromEnv ("TEST_NUM_VAL" , 10 , 1 , 20 ))
54
+ })
55
+ t .Run ("Get default value from env var with value less than min" , func (t * testing.T ) {
56
+ _ = os .Setenv ("TEST_NUM_VAL" , "0" )
57
+ defer os .Setenv ("TEST_NUM_VAL" , "" )
58
+ assert .Equal (t , 10 , ParseNumFromEnv ("TEST_NUM_VAL" , 10 , 1 , 20 ))
59
+ })
60
+ t .Run ("Get default value from env var with value greater than max" , func (t * testing.T ) {
61
+ _ = os .Setenv ("TEST_NUM_VAL" , "30" )
62
+ defer os .Setenv ("TEST_NUM_VAL" , "" )
63
+ assert .Equal (t , 10 , ParseNumFromEnv ("TEST_NUM_VAL" , 10 , 1 , 20 ))
64
+ })
65
+ }
0 commit comments