diff options
| author | Alex Flint <[email protected]> | 2017-02-22 08:38:08 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-02-22 08:38:08 -0800 |
| commit | 8488cf10ceffaa0c78f84ce82b38374c3e546940 (patch) | |
| tree | cfd3ee1c762816d94079ffb0fead78db1a261dd1 /parse_test.go | |
| parent | 2c249ee1fcc1d48bb2e8071c3396f7c97a383dd3 (diff) | |
| parent | c4c162448c8e84495e6fe7435c73291c05530f6d (diff) | |
Merge pull request #48 from alexflint/parse_hyphen
deal with "-" as option value
Diffstat (limited to 'parse_test.go')
| -rw-r--r-- | parse_test.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go index 5e88700..91e17bb 100644 --- a/parse_test.go +++ b/parse_test.go @@ -693,3 +693,49 @@ func TestEmptyArgs(t *testing.T) { // put the original arguments back os.Args = origArgs } + +func TestTooManyHyphens(t *testing.T) { + var args struct { + TooManyHyphens string `arg:"---x"` + } + err := parse("--foo -", &args) + assert.Error(t, err) +} + +func TestHyphenAsOption(t *testing.T) { + var args struct { + Foo string + } + err := parse("--foo -", &args) + require.NoError(t, err) + assert.Equal(t, "-", args.Foo) +} + +func TestHyphenAsPositional(t *testing.T) { + var args struct { + Foo string `arg:"positional"` + } + err := parse("-", &args) + require.NoError(t, err) + assert.Equal(t, "-", args.Foo) +} + +func TestHyphenInMultiOption(t *testing.T) { + var args struct { + Foo []string + Bar int + } + err := parse("--foo --- x - y --bar 3", &args) + require.NoError(t, err) + assert.Equal(t, []string{"---", "x", "-", "y"}, args.Foo) + assert.Equal(t, 3, args.Bar) +} + +func TestHyphenInMultiPositional(t *testing.T) { + var args struct { + Foo []string `arg:"positional"` + } + err := parse("--- x - y", &args) + require.NoError(t, err) + assert.Equal(t, []string{"---", "x", "-", "y"}, args.Foo) +} |
