github.com/palisadeinc/bor@v0.0.0-20230615125219-ab7196213d15/internal/cli/flagset/flagset_test.go (about) 1 package flagset 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestFlagsetBool(t *testing.T) { 11 f := NewFlagSet("") 12 13 value := false 14 f.BoolFlag(&BoolFlag{ 15 Name: "flag", 16 Value: &value, 17 }) 18 19 assert.NoError(t, f.Parse([]string{"--flag", "true"})) 20 assert.Equal(t, value, true) 21 } 22 23 func TestFlagsetSliceString(t *testing.T) { 24 f := NewFlagSet("") 25 26 value := []string{"a", "b", "c"} 27 f.SliceStringFlag(&SliceStringFlag{ 28 Name: "flag", 29 Value: &value, 30 Default: value, 31 }) 32 33 assert.NoError(t, f.Parse([]string{})) 34 assert.Equal(t, value, []string{"a", "b", "c"}) 35 assert.NoError(t, f.Parse([]string{"--flag", "a,b"})) 36 assert.Equal(t, value, []string{"a", "b"}) 37 } 38 39 func TestFlagsetDuration(t *testing.T) { 40 f := NewFlagSet("") 41 42 value := time.Duration(0) 43 f.DurationFlag(&DurationFlag{ 44 Name: "flag", 45 Value: &value, 46 }) 47 48 assert.NoError(t, f.Parse([]string{"--flag", "1m"})) 49 assert.Equal(t, value, 1*time.Minute) 50 } 51 52 func TestFlagsetMapString(t *testing.T) { 53 f := NewFlagSet("") 54 55 value := map[string]string{} 56 f.MapStringFlag(&MapStringFlag{ 57 Name: "flag", 58 Value: &value, 59 }) 60 61 assert.NoError(t, f.Parse([]string{"--flag", "a=b,c=d"})) 62 assert.Equal(t, value, map[string]string{"a": "b", "c": "d"}) 63 }