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  }