github.com/vmware/govmomi@v0.51.0/object/authorization_manager_test.go (about)

     1  // © Broadcom. All Rights Reserved.
     2  // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package object_test
     6  
     7  import (
     8  	"context"
     9  	"testing"
    10  
    11  	"github.com/vmware/govmomi/object"
    12  	"github.com/vmware/govmomi/session"
    13  	"github.com/vmware/govmomi/simulator"
    14  	"github.com/vmware/govmomi/simulator/esx"
    15  	"github.com/vmware/govmomi/vim25"
    16  	"github.com/vmware/govmomi/vim25/types"
    17  )
    18  
    19  func TestAuthorizationManagerPrivilege(t *testing.T) {
    20  	simulator.Test(func(ctx context.Context, c *vim25.Client) {
    21  		m := object.NewAuthorizationManager(c)
    22  		objs := []types.ManagedObjectReference{c.ServiceContent.RootFolder}
    23  		plist := esx.RoleList[0].Privilege[0:2]
    24  		s, _ := session.NewManager(c).UserSession(ctx)
    25  
    26  		p, err := m.HasPrivilegeOnEntity(ctx, objs[0], s.Key, plist)
    27  		if err != nil {
    28  			t.Fatal(err)
    29  		}
    30  		if len(p) != len(plist) {
    31  			t.Errorf("HasPrivilegeOnEntity=%v", p)
    32  		}
    33  
    34  		ep, err := m.HasUserPrivilegeOnEntities(ctx, objs, s.UserName, plist)
    35  		if err != nil {
    36  			t.Fatal(err)
    37  		}
    38  		if len(ep[0].PrivAvailability) != len(plist) {
    39  			t.Errorf("HasUserPrivilegeOnEntities=%v", ep)
    40  		}
    41  
    42  		up, err := m.FetchUserPrivilegeOnEntities(ctx, objs, s.UserName)
    43  		if err != nil {
    44  			t.Fatal(err)
    45  		}
    46  		if len(up) != 1 {
    47  			t.Errorf("FetchUserPrivilegeOnEntities=%v", up)
    48  		}
    49  	})
    50  }