summaryrefslogtreecommitdiffstats
path: root/dependencies/pkg/mod/github.com/jessevdk/go-flags@v1.5.0/short_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'dependencies/pkg/mod/github.com/jessevdk/go-flags@v1.5.0/short_test.go')
-rw-r--r--dependencies/pkg/mod/github.com/jessevdk/go-flags@v1.5.0/short_test.go234
1 files changed, 234 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/jessevdk/go-flags@v1.5.0/short_test.go b/dependencies/pkg/mod/github.com/jessevdk/go-flags@v1.5.0/short_test.go
new file mode 100644
index 0000000..5f4106b
--- /dev/null
+++ b/dependencies/pkg/mod/github.com/jessevdk/go-flags@v1.5.0/short_test.go
@@ -0,0 +1,234 @@
+package flags
+
+import (
+ "fmt"
+ "testing"
+)
+
+func TestShort(t *testing.T) {
+ var opts = struct {
+ Value bool `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-v")
+
+ assertStringArray(t, ret, []string{})
+
+ if !opts.Value {
+ t.Errorf("Expected Value to be true")
+ }
+}
+
+func TestShortTooLong(t *testing.T) {
+ var opts = struct {
+ Value bool `short:"vv"`
+ }{}
+
+ assertParseFail(t, ErrShortNameTooLong, "short names can only be 1 character long, not `vv'", &opts)
+}
+
+func TestShortRequired(t *testing.T) {
+ var opts = struct {
+ Value bool `short:"v" required:"true"`
+ }{}
+
+ assertParseFail(t, ErrRequired, fmt.Sprintf("the required flag `%cv' was not specified", defaultShortOptDelimiter), &opts)
+}
+
+func TestShortRequiredFalsy1(t *testing.T) {
+ var opts = struct {
+ Value bool `short:"v" required:"false"`
+ }{}
+
+ assertParseSuccess(t, &opts)
+}
+
+func TestShortRequiredFalsy2(t *testing.T) {
+ var opts = struct {
+ Value bool `short:"v" required:"no"`
+ }{}
+
+ assertParseSuccess(t, &opts)
+}
+
+func TestShortMultiConcat(t *testing.T) {
+ var opts = struct {
+ V bool `short:"v"`
+ O bool `short:"o"`
+ F bool `short:"f"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-vo", "-f")
+
+ assertStringArray(t, ret, []string{})
+
+ if !opts.V {
+ t.Errorf("Expected V to be true")
+ }
+
+ if !opts.O {
+ t.Errorf("Expected O to be true")
+ }
+
+ if !opts.F {
+ t.Errorf("Expected F to be true")
+ }
+}
+
+func TestShortMultiRequiredConcat(t *testing.T) {
+ var opts = struct {
+ V bool `short:"v" required:"true"`
+ O bool `short:"o" required:"true"`
+ F bool `short:"f" required:"true"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-vo", "-f")
+
+ assertStringArray(t, ret, []string{})
+
+ if !opts.V {
+ t.Errorf("Expected V to be true")
+ }
+
+ if !opts.O {
+ t.Errorf("Expected O to be true")
+ }
+
+ if !opts.F {
+ t.Errorf("Expected F to be true")
+ }
+}
+
+func TestShortMultiSlice(t *testing.T) {
+ var opts = struct {
+ Values []bool `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-v", "-v")
+
+ assertStringArray(t, ret, []string{})
+ assertBoolArray(t, opts.Values, []bool{true, true})
+}
+
+func TestShortMultiSliceConcat(t *testing.T) {
+ var opts = struct {
+ Values []bool `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-vvv")
+
+ assertStringArray(t, ret, []string{})
+ assertBoolArray(t, opts.Values, []bool{true, true, true})
+}
+
+func TestShortWithEqualArg(t *testing.T) {
+ var opts = struct {
+ Value string `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-v=value")
+
+ assertStringArray(t, ret, []string{})
+ assertString(t, opts.Value, "value")
+}
+
+func TestShortWithArg(t *testing.T) {
+ var opts = struct {
+ Value string `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-vvalue")
+
+ assertStringArray(t, ret, []string{})
+ assertString(t, opts.Value, "value")
+}
+
+func TestShortArg(t *testing.T) {
+ var opts = struct {
+ Value string `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-v", "value")
+
+ assertStringArray(t, ret, []string{})
+ assertString(t, opts.Value, "value")
+}
+
+func TestShortMultiWithEqualArg(t *testing.T) {
+ var opts = struct {
+ F []bool `short:"f"`
+ Value string `short:"v"`
+ }{}
+
+ assertParseFail(t, ErrExpectedArgument, fmt.Sprintf("expected argument for flag `%cv'", defaultShortOptDelimiter), &opts, "-ffv=value")
+}
+
+func TestShortMultiArg(t *testing.T) {
+ var opts = struct {
+ F []bool `short:"f"`
+ Value string `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-ffv", "value")
+
+ assertStringArray(t, ret, []string{})
+ assertBoolArray(t, opts.F, []bool{true, true})
+ assertString(t, opts.Value, "value")
+}
+
+func TestShortMultiArgConcatFail(t *testing.T) {
+ var opts = struct {
+ F []bool `short:"f"`
+ Value string `short:"v"`
+ }{}
+
+ assertParseFail(t, ErrExpectedArgument, fmt.Sprintf("expected argument for flag `%cv'", defaultShortOptDelimiter), &opts, "-ffvvalue")
+}
+
+func TestShortMultiArgConcat(t *testing.T) {
+ var opts = struct {
+ F []bool `short:"f"`
+ Value string `short:"v"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-vff")
+
+ assertStringArray(t, ret, []string{})
+ assertString(t, opts.Value, "ff")
+}
+
+func TestShortOptional(t *testing.T) {
+ var opts = struct {
+ F []bool `short:"f"`
+ Value string `short:"v" optional:"yes" optional-value:"value"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-fv", "f")
+
+ assertStringArray(t, ret, []string{"f"})
+ assertString(t, opts.Value, "value")
+}
+
+func TestShortOptionalFalsy1(t *testing.T) {
+ var opts = struct {
+ F []bool `short:"f"`
+ Value string `short:"v" optional:"false" optional-value:"value"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-fv", "f")
+
+ assertStringArray(t, ret, []string{})
+ assertString(t, opts.Value, "f")
+}
+
+func TestShortOptionalFalsy2(t *testing.T) {
+ var opts = struct {
+ F []bool `short:"f"`
+ Value string `short:"v" optional:"no" optional-value:"value"`
+ }{}
+
+ ret := assertParseSuccess(t, &opts, "-fv", "f")
+
+ assertStringArray(t, ret, []string{})
+ assertString(t, opts.Value, "f")
+}