func TestCreate(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() th.Mux.HandleFunc("/networks", func(w http.ResponseWriter, r *http.Request) { th.TestMethod(t, r, "POST") th.TestHeader(t, r, "X-Auth-Token", fake.TokenID) th.TestHeader(t, r, "Content-Type", "application/json") th.TestHeader(t, r, "Accept", "application/json") th.TestJSONRequest(t, r, ` { "network": { "admin_state_up": true, "name": "ext_net", "router:external": true } } `) w.Header().Add("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) fmt.Fprintf(w, ` { "network": { "admin_state_up": true, "id": "8d05a1b1-297a-46ca-8974-17debf51ca3c", "name": "ext_net", "router:external": true, "shared": false, "status": "ACTIVE", "subnets": [ "2f1fb918-9b0e-4bf9-9a50-6cebbb4db2c5" ], "tenant_id": "5eb8995cf717462c9df8d1edfa498010" } } `) }) options := external.CreateOpts{networks.CreateOpts{Name: "ext_net", AdminStateUp: gophercloud.Enabled}, gophercloud.Enabled} res := networks.Create(fake.ServiceClient(), options) n, err := external.ExtractCreate(res) th.AssertNoErr(t, err) th.AssertEquals(t, true, n.External) }
func TestExtractFnsReturnsErrWhenResultContainsErr(t *testing.T) { gr := networks.GetResult{} gr.Err = errors.New("") if _, err := external.ExtractGet(gr); err == nil { t.Fatalf("Expected error, got one") } ur := networks.UpdateResult{} ur.Err = errors.New("") if _, err := external.ExtractUpdate(ur); err == nil { t.Fatalf("Expected error, got one") } cr := networks.CreateResult{} cr.Err = errors.New("") if _, err := external.ExtractCreate(cr); err == nil { t.Fatalf("Expected error, got one") } }