From 30142ba67aa6830ca332940162b5ef3e26a9e75e Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Mon, 28 Mar 2016 13:47:40 -0600 Subject: [PATCH] fix(manager): add test for getDeployments* --- cmd/manager/deployments_test.go | 32 ++++++++++++++++++++++++++++++++ cmd/manager/testutil.go | 10 +++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/cmd/manager/deployments_test.go b/cmd/manager/deployments_test.go index 4243a39f0..84389694f 100644 --- a/cmd/manager/deployments_test.go +++ b/cmd/manager/deployments_test.go @@ -104,3 +104,35 @@ func TestListDeployments(t *testing.T) { t.Errorf("Expected 2 names, got %d", len(out)) } } + +func TestGetDeployments(t *testing.T) { + c := stubContext() + s := httpHarness(c, "GET /deployments/*", getDeploymentHandlerFunc) + defer s.Close() + + man := c.Manager.(*mockManager) + man.deployments = []*common.Deployment{ + {Name: "portunes", State: &common.DeploymentState{Status: common.CreatedStatus}}, + } + + res, err := http.Get(s.URL + "/deployments/portunes") + if err != nil { + t.Errorf("Failed GET: %s", err) + } else if res.StatusCode != http.StatusOK { + t.Errorf("Unexpected status code: %d", res.StatusCode) + } + + var out common.Deployment + if err := json.NewDecoder(res.Body).Decode(&out); err != nil { + t.Errorf("Failed to parse results: %s", err) + return + } + + if out.Name != "portunes" { + t.Errorf("Unexpected name %q", out.Name) + } + + if out.State.Status != common.CreatedStatus { + t.Errorf("Unexpected status %d", out.State.Status) + } +} diff --git a/cmd/manager/testutil.go b/cmd/manager/testutil.go index 059604277..754759d21 100644 --- a/cmd/manager/testutil.go +++ b/cmd/manager/testutil.go @@ -17,6 +17,7 @@ limitations under the License. package main import ( + "errors" "net/http/httptest" "regexp" @@ -72,7 +73,14 @@ func (m *mockManager) ListDeployments() ([]common.Deployment, error) { } func (m *mockManager) GetDeployment(name string) (*common.Deployment, error) { - return &common.Deployment{}, nil + + for _, d := range m.deployments { + if d.Name == name { + return d, nil + } + } + + return nil, errors.New("mock error: No such deployment") } func (m *mockManager) CreateDeployment(t *common.Template) (*common.Deployment, error) {