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