diff --git a/opts/parser_test.go b/opts/parser_test.go index c15f54c..96fb5eb 100644 --- a/opts/parser_test.go +++ b/opts/parser_test.go @@ -265,3 +265,49 @@ func TestParseSingleDashValue(t *testing.T) { t.Errorf("Expected fruit to be '-', got: %s", opt.Value()) } } + +func TestParseLongOptionBadValue(t *testing.T) { + opt := opts.Int("fruit", "f", 0, "") + set := opts.Set{opt} + args := []string{"--fruit=five"} + parser := opts.NewParser(args, set, false) + _, err := parser.Parse() + if err == nil { + t.Error("Expected error") + } +} + +func TestParseShortOptionWithSpaceBadValue(t *testing.T) { + opt := opts.Int("fruit", "f", 0, "") + set := opts.Set{opt} + args := []string{"-f", "five"} + parser := opts.NewParser(args, set, false) + _, err := parser.Parse() + if err == nil { + t.Error("Expected error") + } +} + +func TestParseShortOptionWithoutEqualBadValue(t *testing.T) { + optG := opts.Bool("green", "g", false, "") + optF := opts.Int("fruit", "f", 0, "") + set := opts.Set{optG, optF} + args := []string{"-ffive"} + parser := opts.NewParser(args, set, false) + _, err := parser.Parse() + if err == nil { + t.Error("Expected error") + } +} + +func TestParseShortOptionWithEqualBadValue(t *testing.T) { + optG := opts.Bool("green", "g", false, "") + optF := opts.Int("fruit", "f", 0, "") + set := opts.Set{optG, optF} + args := []string{"-f=five"} + parser := opts.NewParser(args, set, false) + _, err := parser.Parse() + if err == nil { + t.Error("Expected error") + } +}