mirror of https://github.com/ncarlier/webhookd
43 lines
1.6 KiB
Go
43 lines
1.6 KiB
Go
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, "")
|
|
}
|