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 }