github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/objectstorage/v1/accounts_test.go (about) 1 //go:build acceptance 2 // +build acceptance 3 4 package v1 5 6 import ( 7 "strings" 8 "testing" 9 10 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 11 "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/accounts" 12 th "github.com/gophercloud/gophercloud/testhelper" 13 ) 14 15 func TestAccounts(t *testing.T) { 16 client, err := clients.NewObjectStorageV1Client() 17 if err != nil { 18 t.Fatalf("Unable to create client: %v", err) 19 } 20 21 // Update an account's metadata. 22 metadata := map[string]string{ 23 "Gophercloud-Test": "accounts", 24 } 25 updateres := accounts.Update(client, accounts.UpdateOpts{Metadata: metadata}) 26 t.Logf("Update Account Response: %+v\n", updateres) 27 updateHeaders, err := updateres.Extract() 28 th.AssertNoErr(t, err) 29 t.Logf("Update Account Response Headers: %+v\n", updateHeaders) 30 31 // Defer the deletion of the metadata set above. 32 defer func() { 33 tempMap := make(map[string]string) 34 for k := range metadata { 35 tempMap[k] = "" 36 } 37 updateres = accounts.Update(client, accounts.UpdateOpts{Metadata: tempMap}) 38 th.AssertNoErr(t, updateres.Err) 39 }() 40 41 // Extract the custom metadata from the 'Get' response. 42 res := accounts.Get(client, nil) 43 44 h, err := res.Extract() 45 th.AssertNoErr(t, err) 46 t.Logf("Get Account Response Headers: %+v\n", h) 47 48 am, err := res.ExtractMetadata() 49 th.AssertNoErr(t, err) 50 for k := range metadata { 51 if am[k] != metadata[strings.Title(k)] { 52 t.Errorf("Expected custom metadata with key: %s", k) 53 return 54 } 55 } 56 }