Files
sift/docs/plans/p6/_files/cmd_sift/batch_test.go
T

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)
}
}
}