github.com/shrimpyuk/bor@v0.2.15-0.20220224151350-fb4ec6020bae/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{} 27 f.SliceStringFlag(&SliceStringFlag{ 28 Name: "flag", 29 Value: &value, 30 }) 31 32 assert.NoError(t, f.Parse([]string{"--flag", "a,b", "--flag", "c"})) 33 assert.Equal(t, value, []string{"a", "b", "c"}) 34 } 35 36 func TestFlagsetDuration(t *testing.T) { 37 f := NewFlagSet("") 38 39 value := time.Duration(0) 40 f.DurationFlag(&DurationFlag{ 41 Name: "flag", 42 Value: &value, 43 }) 44 45 assert.NoError(t, f.Parse([]string{"--flag", "1m"})) 46 assert.Equal(t, value, 1*time.Minute) 47 } 48 49 func TestFlagsetMapString(t *testing.T) { 50 f := NewFlagSet("") 51 52 value := map[string]string{} 53 f.MapStringFlag(&MapStringFlag{ 54 Name: "flag", 55 Value: &value, 56 }) 57 58 assert.NoError(t, f.Parse([]string{"--flag", "a=b,c=d"})) 59 assert.Equal(t, value, map[string]string{"a": "b", "c": "d"}) 60 }