github.com/engineyard/workflow-cli@v2.21.6+incompatible/parser/builds_test.go (about) 1 package parser 2 3 import ( 4 "bytes" 5 "errors" 6 "testing" 7 8 "github.com/arschles/assert" 9 "github.com/teamhephy/workflow-cli/pkg/testutil" 10 ) 11 12 func (d FakeDeisCmd) BuildsList(string, int) error { 13 return errors.New("builds:list") 14 } 15 16 func (d FakeDeisCmd) BuildsCreate(string, string, string) error { 17 return errors.New("builds:create") 18 } 19 20 func TestBuilds(t *testing.T) { 21 t.Parallel() 22 23 cf, server, err := testutil.NewTestServerAndClient() 24 if err != nil { 25 t.Fatal(err) 26 } 27 defer server.Close() 28 var b bytes.Buffer 29 cmdr := FakeDeisCmd{WOut: &b, ConfigFile: cf} 30 31 // cases defines the arguments and expected return of the call. 32 // if expected is "", it defaults to args[0]. 33 cases := []struct { 34 args []string 35 expected string 36 }{ 37 { 38 args: []string{"builds:list"}, 39 expected: "", 40 }, 41 { 42 args: []string{"builds:create", "deis/example-go:latest"}, 43 expected: "", 44 }, 45 { 46 args: []string{"builds"}, 47 expected: "builds:list", 48 }, 49 } 50 51 // For each case, check that calling the route with the arguments 52 // returns the expected error, which is args[0] if not provided. 53 for _, c := range cases { 54 var expected string 55 if c.expected == "" { 56 expected = c.args[0] 57 } else { 58 expected = c.expected 59 } 60 err = Builds(c.args, cmdr) 61 assert.Err(t, errors.New(expected), err) 62 } 63 }