summaryrefslogtreecommitdiff
path: root/parse_test.go
diff options
context:
space:
mode:
authorAlex Flint <[email protected]>2017-03-30 14:10:29 -0700
committerGitHub <[email protected]>2017-03-30 14:10:29 -0700
commitcef6506c97e5731da728c374ff3523e481026423 (patch)
treea62391d9019589f6fbc7ab44e74a47f1fd7daf8f /parse_test.go
parent8111804d1774e2f9e2f7f734a15d2fb9ca684685 (diff)
parent992acaf408ea8b884c7e62b990aba6c11c1715bc (diff)
Merge pull request #54 from k3a/master
Required multiple positionals
Diffstat (limited to 'parse_test.go')
-rw-r--r--parse_test.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/parse_test.go b/parse_test.go
index 267e57c..a646f2b 100644
--- a/parse_test.go
+++ b/parse_test.go
@@ -250,6 +250,15 @@ func TestRequiredPositional(t *testing.T) {
assert.Error(t, err)
}
+func TestRequiredPositionalMultiple(t *testing.T) {
+ var args struct {
+ Input string `arg:"positional"`
+ Multiple []string `arg:"positional,required"`
+ }
+ err := parse("foo", &args)
+ assert.Error(t, err)
+}
+
func TestTooManyPositional(t *testing.T) {
var args struct {
Input string `arg:"positional"`
@@ -270,6 +279,17 @@ func TestMultiple(t *testing.T) {
assert.Equal(t, []string{"x", "y", "z"}, args.Bar)
}
+func TestMultiplePositionals(t *testing.T) {
+ var args struct {
+ Input string `arg:"positional"`
+ Multiple []string `arg:"positional,required"`
+ }
+ err := parse("foo a b c", &args)
+ assert.NoError(t, err)
+ assert.Equal(t, "foo", args.Input)
+ assert.Equal(t, []string{"a", "b", "c"}, args.Multiple)
+}
+
func TestMultipleWithEq(t *testing.T) {
var args struct {
Foo []int
@@ -321,6 +341,14 @@ func TestMissingRequired(t *testing.T) {
assert.Error(t, err)
}
+func TestMissingRequiredMultiplePositional(t *testing.T) {
+ var args struct {
+ X []string `arg:"positional, required"`
+ }
+ err := parse("x", &args)
+ assert.Error(t, err)
+}
+
func TestMissingValue(t *testing.T) {
var args struct {
Foo string