diff options
| author | Alex Flint <[email protected]> | 2016-01-23 19:42:21 -0800 |
|---|---|---|
| committer | Alex Flint <[email protected]> | 2016-01-23 19:42:21 -0800 |
| commit | 93247e2f3bf9921859417154cf91f46b2892d0ed (patch) | |
| tree | c6063caf15b19da4c969a10f0d1261a81d2bbfd1 /parse_test.go | |
| parent | e560d079baf3881884b897c4cc5850675aad7c15 (diff) | |
| parent | 64a4bab5506099047596a99d4a9b71de8d69798e (diff) | |
Merge pull request #29 from alexflint/parse_duration
Add support for time.Duration fields
Diffstat (limited to 'parse_test.go')
| -rw-r--r-- | parse_test.go | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/parse_test.go b/parse_test.go index f3e7350..c30809d 100644 --- a/parse_test.go +++ b/parse_test.go @@ -4,6 +4,7 @@ import ( "os" "strings" "testing" + "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -17,7 +18,7 @@ func parse(cmdline string, dest interface{}) error { return p.Parse(strings.Split(cmdline, " ")) } -func TestStringSingle(t *testing.T) { +func TestString(t *testing.T) { var args struct { Foo string } @@ -26,6 +27,50 @@ func TestStringSingle(t *testing.T) { assert.Equal(t, "bar", args.Foo) } +func TestInt(t *testing.T) { + var args struct { + Foo int + } + err := parse("--foo 7", &args) + require.NoError(t, err) + assert.EqualValues(t, 7, args.Foo) +} + +func TestUint(t *testing.T) { + var args struct { + Foo uint + } + err := parse("--foo 7", &args) + require.NoError(t, err) + assert.EqualValues(t, 7, args.Foo) +} + +func TestFloat(t *testing.T) { + var args struct { + Foo float32 + } + err := parse("--foo 3.4", &args) + require.NoError(t, err) + assert.EqualValues(t, 3.4, args.Foo) +} + +func TestDuration(t *testing.T) { + var args struct { + Foo time.Duration + } + err := parse("--foo 3ms", &args) + require.NoError(t, err) + assert.Equal(t, 3*time.Millisecond, args.Foo) +} + +func TestInvalidDuration(t *testing.T) { + var args struct { + Foo time.Duration + } + err := parse("--foo xxx", &args) + require.Error(t, err) +} + func TestMixed(t *testing.T) { var args struct { Foo string `arg:"-f"` |
