github.com/vmware/govmomi@v0.51.0/object/datacenter_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/find"
    12  	"github.com/vmware/govmomi/object"
    13  	"github.com/vmware/govmomi/simulator"
    14  	"github.com/vmware/govmomi/vim25"
    15  )
    16  
    17  // Datacenter should implement the Reference interface.
    18  var _ object.Reference = object.Datacenter{}
    19  
    20  func TestDatacenterFolders(t *testing.T) {
    21  	model := simulator.VPX()
    22  	model.Datacenter = 2
    23  	model.Folder = 1
    24  
    25  	simulator.Test(func(ctx context.Context, c *vim25.Client) {
    26  		search := object.NewSearchIndex(c)
    27  		finder := find.NewFinder(c)
    28  
    29  		dc, err := finder.Datacenter(ctx, "DC1")
    30  		if err != nil {
    31  			t.Fatal(err)
    32  		}
    33  
    34  		f, err := dc.Folders(ctx)
    35  		if err != nil {
    36  			t.Fatal(err)
    37  		}
    38  
    39  		folders := []*object.Folder{
    40  			f.DatastoreFolder,
    41  			f.HostFolder,
    42  			f.NetworkFolder,
    43  			f.VmFolder,
    44  		}
    45  
    46  		for _, folder := range folders {
    47  			p := "/F0/DC1/" + folder.Name()
    48  			if p != folder.InventoryPath {
    49  				t.Errorf("InventoryPath=%s", folder.InventoryPath)
    50  			}
    51  
    52  			ref, err := search.FindByInventoryPath(ctx, folder.InventoryPath)
    53  			if err != nil {
    54  				t.Fatal(err)
    55  			}
    56  			if ref == nil {
    57  				t.Errorf("invalid InventoryPath: %s", folder.InventoryPath)
    58  			}
    59  		}
    60  	}, model)
    61  }