github.com/vnpaycloud-console/gophercloud/v2@v2.0.5/openstack/identity/v3/oauth1/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "context" 5 "testing" 6 "time" 7 8 "github.com/vnpaycloud-console/gophercloud/v2/openstack/identity/v3/oauth1" 9 "github.com/vnpaycloud-console/gophercloud/v2/openstack/identity/v3/tokens" 10 "github.com/vnpaycloud-console/gophercloud/v2/pagination" 11 th "github.com/vnpaycloud-console/gophercloud/v2/testhelper" 12 "github.com/vnpaycloud-console/gophercloud/v2/testhelper/client" 13 ) 14 15 func TestCreateConsumer(t *testing.T) { 16 th.SetupHTTP() 17 defer th.TeardownHTTP() 18 HandleCreateConsumer(t) 19 20 consumer, err := oauth1.CreateConsumer(context.TODO(), client.ServiceClient(), oauth1.CreateConsumerOpts{ 21 Description: "My consumer", 22 }).Extract() 23 th.AssertNoErr(t, err) 24 25 th.AssertEquals(t, Consumer, *consumer) 26 } 27 28 func TestUpdateConsumer(t *testing.T) { 29 th.SetupHTTP() 30 defer th.TeardownHTTP() 31 HandleUpdateConsumer(t) 32 33 consumer, err := oauth1.UpdateConsumer(context.TODO(), client.ServiceClient(), "7fea2d", oauth1.UpdateConsumerOpts{ 34 Description: "My new consumer", 35 }).Extract() 36 th.AssertNoErr(t, err) 37 38 th.AssertEquals(t, UpdatedConsumer, *consumer) 39 } 40 41 func TestDeleteConsumer(t *testing.T) { 42 th.SetupHTTP() 43 defer th.TeardownHTTP() 44 HandleDeleteConsumer(t) 45 46 err := oauth1.DeleteConsumer(context.TODO(), client.ServiceClient(), "7fea2d").ExtractErr() 47 th.AssertNoErr(t, err) 48 } 49 50 func TestGetConsumer(t *testing.T) { 51 th.SetupHTTP() 52 defer th.TeardownHTTP() 53 HandleGetConsumer(t) 54 55 consumer, err := oauth1.GetConsumer(context.TODO(), client.ServiceClient(), "7fea2d").Extract() 56 th.AssertNoErr(t, err) 57 58 th.AssertEquals(t, FirstConsumer, *consumer) 59 } 60 61 func TestListConsumers(t *testing.T) { 62 th.SetupHTTP() 63 defer th.TeardownHTTP() 64 HandleListConsumers(t) 65 66 count := 0 67 err := oauth1.ListConsumers(client.ServiceClient()).EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 68 count++ 69 70 actual, err := oauth1.ExtractConsumers(page) 71 th.AssertNoErr(t, err) 72 73 th.CheckDeepEquals(t, ExpectedConsumersSlice, actual) 74 75 return true, nil 76 }) 77 th.AssertNoErr(t, err) 78 th.CheckEquals(t, count, 1) 79 } 80 81 func TestListConsumersAllPages(t *testing.T) { 82 th.SetupHTTP() 83 defer th.TeardownHTTP() 84 HandleListConsumers(t) 85 86 allPages, err := oauth1.ListConsumers(client.ServiceClient()).AllPages(context.TODO()) 87 th.AssertNoErr(t, err) 88 actual, err := oauth1.ExtractConsumers(allPages) 89 th.AssertNoErr(t, err) 90 th.CheckDeepEquals(t, ExpectedConsumersSlice, actual) 91 } 92 93 func TestRequestToken(t *testing.T) { 94 th.SetupPersistentPortHTTP(t, 33199) 95 defer th.TeardownHTTP() 96 HandleRequestToken(t) 97 98 ts := time.Unix(0, 0) 99 token, err := oauth1.RequestToken(context.TODO(), client.ServiceClient(), oauth1.RequestTokenOpts{ 100 OAuthConsumerKey: Consumer.ID, 101 OAuthConsumerSecret: Consumer.Secret, 102 OAuthSignatureMethod: oauth1.HMACSHA1, 103 OAuthTimestamp: &ts, 104 OAuthNonce: "71416001758914252991586795052", 105 RequestedProjectID: "1df927e8a466498f98788ed73d3c8ab4", 106 }).Extract() 107 th.AssertNoErr(t, err) 108 109 th.AssertDeepEquals(t, Token, *token) 110 } 111 112 func TestAuthorizeToken(t *testing.T) { 113 th.SetupHTTP() 114 defer th.TeardownHTTP() 115 HandleAuthorizeToken(t) 116 117 token, err := oauth1.AuthorizeToken(context.TODO(), client.ServiceClient(), "29971f", oauth1.AuthorizeTokenOpts{ 118 Roles: []oauth1.Role{ 119 { 120 ID: "a3b29b", 121 }, 122 { 123 ID: "49993e", 124 }, 125 }, 126 }).Extract() 127 th.AssertNoErr(t, err) 128 129 th.AssertEquals(t, "8171", token.OAuthVerifier) 130 } 131 132 func TestCreateAccessToken(t *testing.T) { 133 th.SetupPersistentPortHTTP(t, 33199) 134 defer th.TeardownHTTP() 135 HandleCreateAccessToken(t) 136 137 ts := time.Unix(1586804894, 0) 138 token, err := oauth1.CreateAccessToken(context.TODO(), client.ServiceClient(), oauth1.CreateAccessTokenOpts{ 139 OAuthConsumerKey: Consumer.ID, 140 OAuthConsumerSecret: Consumer.Secret, 141 OAuthToken: Token.OAuthToken, 142 OAuthTokenSecret: Token.OAuthTokenSecret, 143 OAuthVerifier: "8171", 144 OAuthSignatureMethod: oauth1.HMACSHA1, 145 OAuthTimestamp: &ts, 146 OAuthNonce: "66148873158553341551586804894", 147 }).Extract() 148 th.AssertNoErr(t, err) 149 150 th.AssertDeepEquals(t, AccessToken, *token) 151 } 152 153 func TestGetAccessToken(t *testing.T) { 154 th.SetupHTTP() 155 defer th.TeardownHTTP() 156 HandleGetAccessToken(t) 157 158 token, err := oauth1.GetAccessToken(context.TODO(), client.ServiceClient(), "ce9e07", "6be26a").Extract() 159 th.AssertNoErr(t, err) 160 161 th.AssertDeepEquals(t, UserAccessToken, *token) 162 } 163 164 func TestRevokeAccessToken(t *testing.T) { 165 th.SetupHTTP() 166 defer th.TeardownHTTP() 167 HandleRevokeAccessToken(t) 168 169 err := oauth1.RevokeAccessToken(context.TODO(), client.ServiceClient(), "ce9e07", "6be26a").ExtractErr() 170 th.AssertNoErr(t, err) 171 } 172 173 func TestListAccessTokens(t *testing.T) { 174 th.SetupHTTP() 175 defer th.TeardownHTTP() 176 HandleListAccessTokens(t) 177 178 count := 0 179 err := oauth1.ListAccessTokens(client.ServiceClient(), "ce9e07").EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 180 count++ 181 182 actual, err := oauth1.ExtractAccessTokens(page) 183 th.AssertNoErr(t, err) 184 185 th.CheckDeepEquals(t, ExpectedUserAccessTokensSlice, actual) 186 187 return true, nil 188 }) 189 th.AssertNoErr(t, err) 190 th.CheckEquals(t, count, 1) 191 } 192 193 func TestListAccessTokensAllPages(t *testing.T) { 194 th.SetupHTTP() 195 defer th.TeardownHTTP() 196 HandleListAccessTokens(t) 197 198 allPages, err := oauth1.ListAccessTokens(client.ServiceClient(), "ce9e07").AllPages(context.TODO()) 199 th.AssertNoErr(t, err) 200 actual, err := oauth1.ExtractAccessTokens(allPages) 201 th.AssertNoErr(t, err) 202 th.CheckDeepEquals(t, ExpectedUserAccessTokensSlice, actual) 203 } 204 205 func TestListAccessTokenRoles(t *testing.T) { 206 th.SetupHTTP() 207 defer th.TeardownHTTP() 208 HandleListAccessTokenRoles(t) 209 210 count := 0 211 err := oauth1.ListAccessTokenRoles(client.ServiceClient(), "ce9e07", "6be26a").EachPage(context.TODO(), func(_ context.Context, page pagination.Page) (bool, error) { 212 count++ 213 214 actual, err := oauth1.ExtractAccessTokenRoles(page) 215 th.AssertNoErr(t, err) 216 217 th.CheckDeepEquals(t, ExpectedUserAccessTokenRolesSlice, actual) 218 219 return true, nil 220 }) 221 th.AssertNoErr(t, err) 222 th.CheckEquals(t, count, 1) 223 } 224 225 func TestListAccessTokenRolesAllPages(t *testing.T) { 226 th.SetupHTTP() 227 defer th.TeardownHTTP() 228 HandleListAccessTokenRoles(t) 229 230 allPages, err := oauth1.ListAccessTokenRoles(client.ServiceClient(), "ce9e07", "6be26a").AllPages(context.TODO()) 231 th.AssertNoErr(t, err) 232 actual, err := oauth1.ExtractAccessTokenRoles(allPages) 233 th.AssertNoErr(t, err) 234 th.CheckDeepEquals(t, ExpectedUserAccessTokenRolesSlice, actual) 235 } 236 237 func TestGetAccessTokenRole(t *testing.T) { 238 th.SetupHTTP() 239 defer th.TeardownHTTP() 240 HandleGetAccessTokenRole(t) 241 242 role, err := oauth1.GetAccessTokenRole(context.TODO(), client.ServiceClient(), "ce9e07", "6be26a", "5ad150").Extract() 243 th.AssertNoErr(t, err) 244 245 th.AssertEquals(t, UserAccessTokenRole, *role) 246 } 247 248 func TestAuthenticate(t *testing.T) { 249 th.SetupPersistentPortHTTP(t, 33199) 250 defer th.TeardownHTTP() 251 HandleAuthenticate(t) 252 253 expected := &tokens.Token{ 254 ExpiresAt: time.Date(2017, 6, 3, 2, 19, 49, 0, time.UTC), 255 } 256 257 ts := time.Unix(0, 0) 258 options := &oauth1.AuthOptions{ 259 OAuthConsumerKey: Consumer.ID, 260 OAuthConsumerSecret: Consumer.Secret, 261 OAuthToken: AccessToken.OAuthToken, 262 OAuthTokenSecret: AccessToken.OAuthTokenSecret, 263 OAuthSignatureMethod: oauth1.HMACSHA1, 264 OAuthTimestamp: &ts, 265 OAuthNonce: "66148873158553341551586804894", 266 } 267 268 actual, err := oauth1.Create(context.TODO(), client.ServiceClient(), options).Extract() 269 th.AssertNoErr(t, err) 270 th.CheckDeepEquals(t, expected, actual) 271 }