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  }