func TestRole(t *testing.T) { th.SetupHTTP() defer th.TeardownHTTP() MockListRoleResponse(t) count := 0 err := roles.List(client.ServiceClient()).EachPage(func(page pagination.Page) (bool, error) { count++ actual, err := roles.ExtractRoles(page) if err != nil { t.Errorf("Failed to extract users: %v", err) return false, err } expected := []roles.Role{ { ID: "123", Name: "compute:admin", Description: "Nova Administrator", }, } th.CheckDeepEquals(t, expected, actual) return true, nil }) th.AssertNoErr(t, err) th.AssertEquals(t, 1, count) }
func TestRolesList(t *testing.T) { client, err := clients.NewIdentityV2AdminClient() if err != nil { t.Fatalf("Unable to create an identity client: %v", err) } allPages, err := roles.List(client).AllPages() if err != nil { t.Fatalf("Unable to list all roles: %v", err) } allRoles, err := roles.ExtractRoles(allPages) if err != nil { t.Fatalf("Unable to extract roles: %v", err) } for _, r := range allRoles { PrintRole(t, &r) } }
// FindRole finds all roles that the current authenticated client has access // to and returns the first one found. An error will be returned if the lookup // was unsuccessful. func FindRole(t *testing.T, client *gophercloud.ServiceClient) (*roles.Role, error) { var role *roles.Role allPages, err := roles.List(client).AllPages() if err != nil { return role, err } allRoles, err := roles.ExtractRoles(allPages) if err != nil { return role, err } for _, r := range allRoles { role = &r break } return role, nil }