func TestCreateExecute(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() th.Mux.HandleFunc("/stacks", func(w http.ResponseWriter, r *http.Request) { th.TestMethod(t, r, "POST") w.Header().Add("Content-Type", "application/json") w.WriteHeader(http.StatusAccepted) fmt.Fprintf(w, `{"stack": {"id": "3095aefc-09fb-4bc7-b1f0-f21a304e864c"}}`) }) cmd := &commandCreate{ Ctx: &handler.Context{ ServiceClient: client.ServiceClient(), }, } templateOpts := new(osStacks.Template) templateOpts.Bin = []byte(`"heat_template_version": "2014-10-16"`) actual := &handler.Resource{ Params: ¶msCreate{ opts: &osStacks.CreateOpts{ Name: "stack1", TemplateOpts: templateOpts, Parameters: map[string]string{ "img": "foo", "flavor": "bar", }, }, }, } cmd.Execute(actual) th.AssertNoErr(t, actual.Err) }
func TestUpdateExecute(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() th.Mux.HandleFunc("/stacks/stack1/id1", func(w http.ResponseWriter, r *http.Request) { if r.Method == "PUT" { w.WriteHeader(http.StatusAccepted) w.Header().Add("Content-Type", "application/json") fmt.Fprintf(w, `{"stack": {}}`) } else if r.Method == "GET" { w.Header().Add("Content-Type", "application/json") w.WriteHeader(http.StatusOK) fmt.Fprint(w, `{"stack": {"creation_time": "2014-06-03T20:59:46"}}`) } }) cmd := &commandUpdate{ Ctx: &handler.Context{ ServiceClient: client.ServiceClient(), }, } templateOpts := new(osStacks.Template) templateOpts.Bin = []byte(`"heat_template_version": "2014-10-16"`) actual := &handler.Resource{ Params: ¶msUpdate{ stackName: "stack1", stackID: "id1", opts: &osStacks.UpdateOpts{ TemplateOpts: templateOpts, Parameters: map[string]string{ "img": "foo", "flavor": "bar", }, }, }, } cmd.Execute(actual) th.AssertNoErr(t, actual.Err) }