github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/identity/v2/role_test.go (about) 1 //go:build acceptance || identity || roles 2 // +build acceptance identity roles 3 4 package v2 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 11 "github.com/gophercloud/gophercloud/openstack/identity/v2/extensions/admin/roles" 12 "github.com/gophercloud/gophercloud/openstack/identity/v2/users" 13 th "github.com/gophercloud/gophercloud/testhelper" 14 ) 15 16 func TestRolesAddToUser(t *testing.T) { 17 clients.RequireIdentityV2(t) 18 clients.RequireAdmin(t) 19 20 client, err := clients.NewIdentityV2AdminClient() 21 th.AssertNoErr(t, err) 22 23 tenant, err := FindTenant(t, client) 24 th.AssertNoErr(t, err) 25 26 role, err := FindRole(t, client) 27 th.AssertNoErr(t, err) 28 29 user, err := CreateUser(t, client, tenant) 30 th.AssertNoErr(t, err) 31 defer DeleteUser(t, client, user) 32 33 err = AddUserRole(t, client, tenant, user, role) 34 th.AssertNoErr(t, err) 35 defer DeleteUserRole(t, client, tenant, user, role) 36 37 allPages, err := users.ListRoles(client, tenant.ID, user.ID).AllPages() 38 th.AssertNoErr(t, err) 39 40 allRoles, err := users.ExtractRoles(allPages) 41 th.AssertNoErr(t, err) 42 43 t.Logf("Roles of user %s:", user.Name) 44 var found bool 45 for _, r := range allRoles { 46 tools.PrintResource(t, role) 47 if r.Name == role.Name { 48 found = true 49 } 50 } 51 52 th.AssertEquals(t, found, true) 53 } 54 55 func TestRolesList(t *testing.T) { 56 clients.RequireIdentityV2(t) 57 clients.RequireAdmin(t) 58 59 client, err := clients.NewIdentityV2AdminClient() 60 th.AssertNoErr(t, err) 61 62 allPages, err := roles.List(client).AllPages() 63 th.AssertNoErr(t, err) 64 65 allRoles, err := roles.ExtractRoles(allPages) 66 th.AssertNoErr(t, err) 67 68 var found bool 69 for _, r := range allRoles { 70 tools.PrintResource(t, r) 71 if r.Name == "admin" { 72 found = true 73 } 74 } 75 76 th.AssertEquals(t, found, true) 77 }