github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/identity/v3/roles/testing/requests_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/chnsz/golangsdk/openstack/identity/v3/roles"
     7  	th "github.com/chnsz/golangsdk/testhelper"
     8  	"github.com/chnsz/golangsdk/testhelper/client"
     9  )
    10  
    11  func TestListRolesAllPages(t *testing.T) {
    12  	th.SetupHTTP()
    13  	defer th.TeardownHTTP()
    14  	HandleListRolesSuccessfully(t)
    15  
    16  	allPages, err := roles.List(client.ServiceClient(), nil).AllPages()
    17  	th.AssertNoErr(t, err)
    18  	actual, err := roles.ExtractRoles(allPages)
    19  	th.AssertNoErr(t, err)
    20  	th.CheckDeepEquals(t, ExpectedRolesSlice, actual)
    21  	th.AssertEquals(t, ExpectedRolesSlice[1].Extra["description"], "read-only support role")
    22  }
    23  
    24  func TestGetRole(t *testing.T) {
    25  	th.SetupHTTP()
    26  	defer th.TeardownHTTP()
    27  	HandleGetRoleSuccessfully(t)
    28  
    29  	actual, err := roles.Get(client.ServiceClient(), "9fe1d3").Extract()
    30  
    31  	th.AssertNoErr(t, err)
    32  	th.CheckDeepEquals(t, SecondRole, *actual)
    33  }
    34  
    35  func TestCreateRole(t *testing.T) {
    36  	th.SetupHTTP()
    37  	defer th.TeardownHTTP()
    38  	HandleCreateRoleSuccessfully(t)
    39  
    40  	createOpts := roles.CreateOpts{
    41  		Name:     "support",
    42  		DomainID: "1789d1",
    43  		Extra: map[string]interface{}{
    44  			"description": "read-only support role",
    45  		},
    46  	}
    47  
    48  	actual, err := roles.Create(client.ServiceClient(), createOpts).Extract()
    49  	th.AssertNoErr(t, err)
    50  	th.CheckDeepEquals(t, SecondRole, *actual)
    51  }
    52  
    53  func TestUpdateRole(t *testing.T) {
    54  	th.SetupHTTP()
    55  	defer th.TeardownHTTP()
    56  	HandleUpdateRoleSuccessfully(t)
    57  
    58  	updateOpts := roles.UpdateOpts{
    59  		Extra: map[string]interface{}{
    60  			"description": "admin read-only support role",
    61  		},
    62  	}
    63  
    64  	actual, err := roles.Update(client.ServiceClient(), "9fe1d3", updateOpts).Extract()
    65  	th.AssertNoErr(t, err)
    66  	th.CheckDeepEquals(t, SecondRoleUpdated, *actual)
    67  }
    68  
    69  func TestDeleteRole(t *testing.T) {
    70  	th.SetupHTTP()
    71  	defer th.TeardownHTTP()
    72  	HandleDeleteRoleSuccessfully(t)
    73  
    74  	res := roles.Delete(client.ServiceClient(), "9fe1d3")
    75  	th.AssertNoErr(t, res.Err)
    76  }
    77  
    78  func TestAssign(t *testing.T) {
    79  	th.SetupHTTP()
    80  	defer th.TeardownHTTP()
    81  	HandleAssignSuccessfully(t)
    82  
    83  	err := roles.Assign(client.ServiceClient(), "{role_id}", roles.AssignOpts{
    84  		UserID:    "{user_id}",
    85  		ProjectID: "{project_id}",
    86  	}).ExtractErr()
    87  	th.AssertNoErr(t, err)
    88  
    89  	err = roles.Assign(client.ServiceClient(), "{role_id}", roles.AssignOpts{
    90  		UserID:   "{user_id}",
    91  		DomainID: "{domain_id}",
    92  	}).ExtractErr()
    93  	th.AssertNoErr(t, err)
    94  
    95  	err = roles.Assign(client.ServiceClient(), "{role_id}", roles.AssignOpts{
    96  		GroupID:   "{group_id}",
    97  		ProjectID: "{project_id}",
    98  	}).ExtractErr()
    99  	th.AssertNoErr(t, err)
   100  
   101  	err = roles.Assign(client.ServiceClient(), "{role_id}", roles.AssignOpts{
   102  		GroupID:  "{group_id}",
   103  		DomainID: "{domain_id}",
   104  	}).ExtractErr()
   105  	th.AssertNoErr(t, err)
   106  }
   107  
   108  func TestUnassign(t *testing.T) {
   109  	th.SetupHTTP()
   110  	defer th.TeardownHTTP()
   111  	HandleUnassignSuccessfully(t)
   112  
   113  	err := roles.Unassign(client.ServiceClient(), "{role_id}", roles.UnassignOpts{
   114  		UserID:    "{user_id}",
   115  		ProjectID: "{project_id}",
   116  	}).ExtractErr()
   117  	th.AssertNoErr(t, err)
   118  
   119  	err = roles.Unassign(client.ServiceClient(), "{role_id}", roles.UnassignOpts{
   120  		UserID:   "{user_id}",
   121  		DomainID: "{domain_id}",
   122  	}).ExtractErr()
   123  	th.AssertNoErr(t, err)
   124  
   125  	err = roles.Unassign(client.ServiceClient(), "{role_id}", roles.UnassignOpts{
   126  		GroupID:   "{group_id}",
   127  		ProjectID: "{project_id}",
   128  	}).ExtractErr()
   129  	th.AssertNoErr(t, err)
   130  
   131  	err = roles.Unassign(client.ServiceClient(), "{role_id}", roles.UnassignOpts{
   132  		GroupID:  "{group_id}",
   133  		DomainID: "{domain_id}",
   134  	}).ExtractErr()
   135  	th.AssertNoErr(t, err)
   136  }