mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-24 03:47:45 +08:00
commands: Wrote tests for command option validation
This commit is contained in:
parent
15b7388c0e
commit
dd682963a2
60
commands/command_test.go
Normal file
60
commands/command_test.go
Normal file
@ -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")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user