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  }