From 4b2fcdb1ade79300c56074de8e7a7bf754cd407e Mon Sep 17 00:00:00 2001 From: Jesse Howarth and Michael Ivey Date: Tue, 2 Dec 2014 21:08:24 +0000 Subject: [PATCH] Add tests for required flags --- required_flags_test.go | 60 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 required_flags_test.go diff --git a/required_flags_test.go b/required_flags_test.go new file mode 100644 index 0000000..f9abe7a --- /dev/null +++ b/required_flags_test.go @@ -0,0 +1,60 @@ +package cli + +import ( + "flag" + "testing" +) + +func TestContext_CheckRequiredFlagsSuccess(t *testing.T) { + flags := []Flag{ + StringFlag{ + Name: "required", + Required: true, + }, + StringFlag{ + Name: "optional", + }, + } + + set := flag.NewFlagSet("test", 0) + for _, f := range flags { + f.Apply(set) + } + + e := set.Parse([]string{"--required", "foo"}) + if e != nil { + t.Errorf("Expected no error parsing but there was one: %s", e) + } + + err := checkRequiredFlags(flags, set) + if err != nil { + t.Error("Expected flag parsing to be successful") + } +} + +func TestContext_CheckRequiredFlagsFailure(t *testing.T) { + flags := []Flag{ + StringFlag{ + Name: "required", + Required: true, + }, + StringFlag{ + Name: "optional", + }, + } + + set := flag.NewFlagSet("test", 0) + for _, f := range flags { + f.Apply(set) + } + + e := set.Parse([]string{"--optional", "foo"}) + if e != nil { + t.Errorf("Expected no error parsing but there was one: %s", e) + } + + err := checkRequiredFlags(flags, set) + if err == nil { + t.Error("Expected flag parsing to be unsuccessful") + } +}