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