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  }