mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-27 23:26:44 +00:00
60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
package flagset
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestFlagsetBool(t *testing.T) {
|
|
f := NewFlagSet("")
|
|
|
|
value := false
|
|
f.BoolFlag(&BoolFlag{
|
|
Name: "flag",
|
|
Value: &value,
|
|
})
|
|
|
|
assert.NoError(t, f.Parse([]string{"--flag", "true"}))
|
|
assert.Equal(t, value, true)
|
|
}
|
|
|
|
func TestFlagsetSliceString(t *testing.T) {
|
|
f := NewFlagSet("")
|
|
|
|
value := []string{}
|
|
f.SliceStringFlag(&SliceStringFlag{
|
|
Name: "flag",
|
|
Value: &value,
|
|
})
|
|
|
|
assert.NoError(t, f.Parse([]string{"--flag", "a,b", "--flag", "c"}))
|
|
assert.Equal(t, value, []string{"a", "b", "c"})
|
|
}
|
|
|
|
func TestFlagsetDuration(t *testing.T) {
|
|
f := NewFlagSet("")
|
|
|
|
value := time.Duration(0)
|
|
f.DurationFlag(&DurationFlag{
|
|
Name: "flag",
|
|
Value: &value,
|
|
})
|
|
|
|
assert.NoError(t, f.Parse([]string{"--flag", "1m"}))
|
|
assert.Equal(t, value, 1*time.Minute)
|
|
}
|
|
|
|
func TestFlagsetMapString(t *testing.T) {
|
|
f := NewFlagSet("")
|
|
|
|
value := map[string]string{}
|
|
f.MapStringFlag(&MapStringFlag{
|
|
Name: "flag",
|
|
Value: &value,
|
|
})
|
|
|
|
assert.NoError(t, f.Parse([]string{"--flag", "a=b,c=d"}))
|
|
assert.Equal(t, value, map[string]string{"a": "b", "c": "d"})
|
|
}
|