summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/common/options/options_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/gotools/common/options/options_test.go')
-rw-r--r--src/mongo/gotools/common/options/options_test.go75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/mongo/gotools/common/options/options_test.go b/src/mongo/gotools/common/options/options_test.go
new file mode 100644
index 00000000000..cc18af21506
--- /dev/null
+++ b/src/mongo/gotools/common/options/options_test.go
@@ -0,0 +1,75 @@
+package options
+
+import (
+ . "github.com/smartystreets/goconvey/convey"
+ "testing"
+)
+
+func TestVerbosityFlag(t *testing.T) {
+ Convey("With a new ToolOptions", t, func() {
+ enabled := EnabledOptions{false, false, false}
+ optPtr := New("", "", enabled)
+ So(optPtr, ShouldNotBeNil)
+ So(optPtr.parser, ShouldNotBeNil)
+
+ Convey("no verbosity flags, Level should be 0", func() {
+ _, err := optPtr.parser.ParseArgs([]string{})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 0)
+ })
+
+ Convey("one short verbosity flag, Level should be 1", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"-v"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 1)
+ })
+
+ Convey("three short verbosity flags (consecutive), Level should be 3", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"-vvv"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 3)
+ })
+
+ Convey("three short verbosity flags (dispersed), Level should be 3", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"-v", "-v", "-v"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 3)
+ })
+
+ Convey("short verbosity flag assigned to 3, Level should be 3", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"-v=3"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 3)
+ })
+
+ Convey("consecutive short flags with assignment, only assignment holds", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"-vv=3"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 3)
+ })
+
+ Convey("one long verbose flag, Level should be 1", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"--verbose"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 1)
+ })
+
+ Convey("three long verbosity flags, Level should be 3", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"--verbose", "--verbose", "--verbose"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 3)
+ })
+
+ Convey("long verbosity flag assigned to 3, Level should be 3", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"--verbose=3"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 3)
+ })
+
+ Convey("mixed assignment and bare flag, total is sum", func() {
+ _, err := optPtr.parser.ParseArgs([]string{"--verbose", "--verbose=3"})
+ So(err, ShouldBeNil)
+ So(optPtr.Level(), ShouldEqual, 4)
+ })
+ })
+}