github.com/vmware/govmomi@v0.51.0/simulator/entity_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 simulator
     6  
     7  import (
     8  	"testing"
     9  
    10  	"github.com/vmware/govmomi/vim25/methods"
    11  	"github.com/vmware/govmomi/vim25/types"
    12  )
    13  
    14  func TestRename(t *testing.T) {
    15  	m := VPX()
    16  	m.Datacenter = 2
    17  	m.Folder = 2
    18  
    19  	defer m.Remove()
    20  
    21  	err := m.Create()
    22  	if err != nil {
    23  		t.Fatal(err)
    24  	}
    25  
    26  	s := m.Service.NewServer()
    27  	defer s.Close()
    28  
    29  	ctx := m.Service.Context
    30  	dc := ctx.Map.Any("Datacenter").(*Datacenter)
    31  	vmFolder := ctx.Map.Get(dc.VmFolder).(*Folder)
    32  
    33  	f1 := ctx.Map.Get(vmFolder.ChildEntity[0]).(*Folder) // "F1"
    34  
    35  	id := vmFolder.CreateFolder(ctx, &types.CreateFolder{
    36  		This: vmFolder.Reference(),
    37  		Name: "F2",
    38  	}).(*methods.CreateFolderBody).Res.Returnval
    39  
    40  	f2 := ctx.Map.Get(id).(*Folder) // "F2"
    41  
    42  	states := []types.TaskInfoState{types.TaskInfoStateError, types.TaskInfoStateSuccess}
    43  	name := f1.Name
    44  
    45  	for _, expect := range states {
    46  		id = f2.RenameTask(ctx, &types.Rename_Task{
    47  			This:    f2.Reference(),
    48  			NewName: name,
    49  		}).(*methods.Rename_TaskBody).Res.Returnval
    50  
    51  		task := ctx.Map.Get(id).(*Task)
    52  		task.Wait()
    53  
    54  		if task.Info.State != expect {
    55  			t.Errorf("state=%s", task.Info.State)
    56  		}
    57  
    58  		name += "-uniq"
    59  	}
    60  }