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 }