From 5263995b147054561881f229bed280bf4a8e3973 Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Tue, 29 Mar 2016 17:30:15 -0600 Subject: [PATCH 1/2] fix(manager): add test for delete deployment API --- cmd/manager/deployments_test.go | 25 +++++++++++++++++++++++++ cmd/manager/testutil.go | 9 ++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/cmd/manager/deployments_test.go b/cmd/manager/deployments_test.go index bd06e3370..17d8b6ef5 100644 --- a/cmd/manager/deployments_test.go +++ b/cmd/manager/deployments_test.go @@ -136,3 +136,28 @@ func TestGetDeployments(t *testing.T) { t.Errorf("Unexpected status %d", out.State.Status) } } + +func TestDeleteDeployments(t *testing.T) { + c := stubContext() + s := httpHarness(c, "DELETE /deployments/*", deleteDeploymentHandlerFunc) + defer s.Close() + + man := c.Manager.(*mockManager) + man.deployments = []*common.Deployment{ + {Name: "portunes", State: &common.DeploymentState{Status: common.CreatedStatus}}, + } + + req, err := http.NewRequest("DELETE", s.URL+"/deployments/portunes", nil) + if err != nil { + t.Fatal("Failed to create delete request") + } + + res, err := http.DefaultClient.Do(req) + if err != nil { + t.Fatalf("Failed to execute delete request: %s", err) + } + + if res.StatusCode != 200 { + t.Errorf("Expected status code 200, got %d", res.StatusCode) + } +} diff --git a/cmd/manager/testutil.go b/cmd/manager/testutil.go index 20d43ddd7..67e8d4554 100644 --- a/cmd/manager/testutil.go +++ b/cmd/manager/testutil.go @@ -18,6 +18,7 @@ package main import ( "errors" + "fmt" "net/http/httptest" "regexp" @@ -88,7 +89,13 @@ func (m *mockManager) CreateDeployment(depReq *common.DeploymentRequest) (*commo } func (m *mockManager) DeleteDeployment(name string, forget bool) (*common.Deployment, error) { - return &common.Deployment{}, nil + for _, d := range m.deployments { + if d.Name == name { + return d, nil + } + } + fmt.Printf("Could not find %s", name) + return nil, errors.New("Deployment not found") } func (m *mockManager) PutDeployment(name string, depReq *common.DeploymentRequest) (*common.Deployment, error) { From efeac792886aa6e85ba594a84b7476af1c5ddbe8 Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Tue, 29 Mar 2016 17:40:04 -0600 Subject: [PATCH 2/2] fix(manager): add unmarshal test on delete deployment Deleting a deployment returns the deployment object. This adds an unmarshal test on that. --- cmd/manager/deployments_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cmd/manager/deployments_test.go b/cmd/manager/deployments_test.go index 17d8b6ef5..375ea56c3 100644 --- a/cmd/manager/deployments_test.go +++ b/cmd/manager/deployments_test.go @@ -160,4 +160,14 @@ func TestDeleteDeployments(t *testing.T) { if res.StatusCode != 200 { t.Errorf("Expected status code 200, got %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) + } }