Commit 0c30aeda authored by Matt Bell's avatar Matt Bell Committed by Juan Batiz-Benet

commands: Wrote tests for command option validation

parent ee14bb89
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")
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment