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