From dd682963a2f14535b77ce78c243f83052122eaaf Mon Sep 17 00:00:00 2001 From: Matt Bell Date: Wed, 8 Oct 2014 14:30:27 -0700 Subject: [PATCH] commands: Wrote tests for command option validation --- commands/command_test.go | 60 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 commands/command_test.go diff --git a/commands/command_test.go b/commands/command_test.go new file mode 100644 index 000000000..f08e37560 --- /dev/null +++ b/commands/command_test.go @@ -0,0 +1,60 @@ +package commands + +import "testing" + +func TestOptionValidation(t *testing.T) { + cmd := Command{ + Options: []Option{ + Option{ []string{ "b", "beep" }, Int }, + Option{ []string{ "B", "boop" }, String }, + }, + f: func(req *Request) (interface{}, error) { + return nil, nil + }, + } + + req := NewRequest() + req.options["foo"] = 5 + _, err := cmd.Call(nil, req) + if err == nil { + t.Error("Should have failed (unrecognized command)") + } + + req = NewRequest() + req.options["beep"] = 5 + req.options["b"] = 10 + _, err = cmd.Call(nil, req) + if err == nil { + t.Error("Should have failed (duplicate options)") + } + + req = NewRequest() + req.options["beep"] = "foo" + _, err = cmd.Call(nil, req) + if err == nil { + t.Error("Should have failed (incorrect type)") + } + + req = NewRequest() + req.options["beep"] = 5 + _, err = cmd.Call(nil, req) + if err != nil { + t.Error("Should have passed") + } + + req = NewRequest() + req.options["beep"] = 5 + req.options["boop"] = "test" + _, err = cmd.Call(nil, req) + if err != nil { + t.Error("Should have passed") + } + + req = NewRequest() + req.options["b"] = 5 + req.options["B"] = "test" + _, err = cmd.Call(nil, req) + if err != nil { + t.Error("Should have passed") + } +}