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  }