summaryrefslogtreecommitdiff
path: root/parse_test.go
diff options
context:
space:
mode:
authorMario Hros <[email protected]>2017-03-30 20:47:59 +0200
committerMario Hros <[email protected]>2017-03-30 20:47:59 +0200
commit992acaf408ea8b884c7e62b990aba6c11c1715bc (patch)
treea62391d9019589f6fbc7ab44e74a47f1fd7daf8f /parse_test.go
parent58e62faa3d380dc61dc3be3ce78672081779c0fc (diff)
tests
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