github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/identity/v3/credentials/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/vnpaycloud-console/gophercloud/v2/openstack/identity/v3/credentials" 8 "github.com/vnpaycloud-console/gophercloud/v2/pagination" 9 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 10 "github.com/vnpaycloud-console/gophercloud/v2/testhelper/client" 11 ) 12 13 func TestListCredentials(t *testing.T) { 14 th.SetupHTTP() 15 defer th.TeardownHTTP() 16 HandleListCredentialsSuccessfully(t) 17 18 count := 0 19 err := credentials.List(client.ServiceClient(), nil).EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 20 count++ 21 22 actual, err := credentials.ExtractCredentials(page) 23 th.AssertNoErr(t, err) 24 25 th.CheckDeepEquals(t, ExpectedCredentialsSlice, actual) 26 27 return true, nil 28 }) 29 th.AssertNoErr(t, err) 30 th.CheckEquals(t, count, 1) 31 } 32 33 func TestListCredentialsAllPages(t *testing.T) { 34 th.SetupHTTP() 35 defer th.TeardownHTTP() 36 HandleListCredentialsSuccessfully(t) 37 38 allPages, err := credentials.List(client.ServiceClient(), nil).AllPages(context.TODO()) 39 th.AssertNoErr(t, err) 40 actual, err := credentials.ExtractCredentials(allPages) 41 th.AssertNoErr(t, err) 42 th.CheckDeepEquals(t, ExpectedCredentialsSlice, actual) 43 th.AssertDeepEquals(t, ExpectedCredentialsSlice[0].Blob, "{\"access\":\"181920\",\"secret\":\"secretKey\"}") 44 th.AssertDeepEquals(t, ExpectedCredentialsSlice[1].Blob, "{\"access\":\"7da79ff0aa364e1396f067e352b9b79a\",\"secret\":\"7a18d68ba8834b799d396f3ff6f1e98c\"}") 45 } 46 47 func TestGetCredential(t *testing.T) { 48 th.SetupHTTP() 49 defer th.TeardownHTTP() 50 HandleGetCredentialSuccessfully(t) 51 52 actual, err := credentials.Get(context.TODO(), client.ServiceClient(), credentialID).Extract() 53 th.AssertNoErr(t, err) 54 th.CheckDeepEquals(t, Credential, *actual) 55 } 56 57 func TestCreateCredential(t *testing.T) { 58 th.SetupHTTP() 59 defer th.TeardownHTTP() 60 HandleCreateCredentialSuccessfully(t) 61 62 createOpts := credentials.CreateOpts{ 63 ProjectID: projectID, 64 Type: "ec2", 65 UserID: userID, 66 Blob: "{\"access\":\"181920\",\"secret\":\"secretKey\"}", 67 } 68 69 CredentialResponse := Credential 70 71 actual, err := credentials.Create(context.TODO(), client.ServiceClient(), createOpts).Extract() 72 th.AssertNoErr(t, err) 73 th.CheckDeepEquals(t, CredentialResponse, *actual) 74 } 75 76 func TestDeleteCredential(t *testing.T) { 77 th.SetupHTTP() 78 defer th.TeardownHTTP() 79 HandleDeleteCredentialSuccessfully(t) 80 81 res := credentials.Delete(context.TODO(), client.ServiceClient(), credentialID) 82 th.AssertNoErr(t, res.Err) 83 } 84 85 func TestUpdateCredential(t *testing.T) { 86 th.SetupHTTP() 87 defer th.TeardownHTTP() 88 HandleUpdateCredentialSuccessfully(t) 89 90 updateOpts := credentials.UpdateOpts{ 91 ProjectID: "731fc6f265cd486d900f16e84c5cb594", 92 Type: "ec2", 93 UserID: "bb5476fd12884539b41d5a88f838d773", 94 Blob: "{\"access\":\"181920\",\"secret\":\"secretKey\"}", 95 } 96 97 actual, err := credentials.Update(context.TODO(), client.ServiceClient(), "2441494e52ab6d594a34d74586075cb299489bdd1e9389e3ab06467a4f460609", updateOpts).Extract() 98 th.AssertNoErr(t, err) 99 th.CheckDeepEquals(t, SecondCredentialUpdated, *actual) 100 }