| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package test
- import (
- "flag"
- "testing"
- "time"
- "github.com/ncarlier/webhookd/pkg/assert"
- configflag "github.com/ncarlier/webhookd/pkg/config/flag"
- )
- type sampleConfig struct {
- Label string `flag:"label" desc:"String parameter" default:"foo"`
- Override string `flag:"override" desc:"String parameter to override" default:"bar"`
- Count int `flag:"count" desc:"Number parameter" default:"2"`
- Debug bool `flag:"debug" desc:"Boolean parameter" default:"false"`
- Timer time.Duration `flag:"timer" desc:"Duration parameter" default:"30s"`
- Array []string `flag:"array" desc:"Array parameter" default:"foo,bar"`
- OverrideArray []string `flag:"override-array" desc:"Array parameter to override" default:"foo"`
- Obj objConfig `flag:"obj"`
- }
- type objConfig struct {
- Name string `flag:"name" desc:"Object name" default:"none"`
- }
- func TestFlagBinding(t *testing.T) {
- conf := &sampleConfig{}
- err := configflag.Bind(conf, "FOO")
- flag.CommandLine.Parse([]string{"-override", "test", "-override-array", "a", "-override-array", "b", "-obj-name", "foo"})
- assert.Nil(t, err, "error should be nil")
- assert.Equal(t, "foo", conf.Label, "")
- assert.Equal(t, "test", conf.Override, "")
- assert.Equal(t, 2, conf.Count, "")
- assert.Equal(t, false, conf.Debug, "")
- assert.Equal(t, time.Second*30, conf.Timer, "")
- assert.Equal(t, 2, len(conf.Array), "")
- assert.Equal(t, "foo", conf.Array[0], "")
- assert.Equal(t, 2, len(conf.OverrideArray), "")
- assert.Equal(t, "a", conf.OverrideArray[0], "")
- assert.Equal(t, "foo", conf.Obj.Name, "")
- }
|