35 lines
897 B
Go
35 lines
897 B
Go
package main
|
|
|
|
import "testing"
|
|
|
|
func TestParseBatchArgs(t *testing.T) {
|
|
cases := []struct {
|
|
args []string
|
|
verb string
|
|
arg string
|
|
ok bool
|
|
}{
|
|
{[]string{"submit", "targets.json"}, "submit", "targets.json", true},
|
|
{[]string{"submit", "-"}, "submit", "-", true},
|
|
{[]string{"status", "job-123"}, "status", "job-123", true},
|
|
{[]string{"cancel", "job-123"}, "cancel", "job-123", true},
|
|
{[]string{}, "", "", false},
|
|
{[]string{"status"}, "", "", false},
|
|
{[]string{"status", "a", "b"}, "", "", false},
|
|
{[]string{"bogus", "x"}, "", "", false},
|
|
}
|
|
for _, c := range cases {
|
|
verb, arg, err := parseBatchArgs(c.args)
|
|
if c.ok {
|
|
if err != nil {
|
|
t.Fatalf("%v: unexpected error %v", c.args, err)
|
|
}
|
|
if verb != c.verb || arg != c.arg {
|
|
t.Fatalf("%v: got verb=%q arg=%q", c.args, verb, arg)
|
|
}
|
|
} else if err == nil {
|
|
t.Fatalf("%v: want error", c.args)
|
|
}
|
|
}
|
|
}
|