github.com/vmware/govmomi@v0.51.0/object/namespace_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/fault"
    12  	"github.com/vmware/govmomi/find"
    13  	"github.com/vmware/govmomi/object"
    14  	"github.com/vmware/govmomi/simulator"
    15  	"github.com/vmware/govmomi/vim25"
    16  	"github.com/vmware/govmomi/vim25/types"
    17  )
    18  
    19  func TestDatastoreNamespaceManager(t *testing.T) {
    20  	simulator.Test(func(ctx context.Context, c *vim25.Client) {
    21  		m := object.NewDatastoreNamespaceManager(c)
    22  
    23  		finder := find.NewFinder(c)
    24  		dc, err := finder.DefaultDatacenter(ctx)
    25  		if err != nil {
    26  			t.Fatal(err)
    27  		}
    28  
    29  		ds, err := finder.DefaultDatastore(ctx)
    30  		if err != nil {
    31  			t.Fatal(err)
    32  		}
    33  
    34  		store := simulator.Map(ctx).Get(ds.Reference()).(*simulator.Datastore)
    35  
    36  		name := "foo"
    37  
    38  		dir, err := m.CreateDirectory(ctx, ds, name, "")
    39  		if !fault.Is(err, &types.CannotCreateFile{}) {
    40  			t.Errorf("err=%v", err)
    41  		}
    42  
    43  		store.Summary.Type = string(types.HostFileSystemVolumeFileSystemTypeVsan)
    44  		store.Capability.TopLevelDirectoryCreateSupported = types.NewBool(true)
    45  
    46  		dir, err = m.CreateDirectory(ctx, ds, name, "")
    47  		if err != nil {
    48  			t.Errorf("err=%v", err)
    49  		}
    50  
    51  		err = m.DeleteDirectory(ctx, dc, name)
    52  		if !fault.Is(err, &types.InvalidDatastorePath{}) {
    53  			t.Errorf("err=%v", err)
    54  		}
    55  
    56  		err = m.DeleteDirectory(ctx, dc, dir)
    57  		if err != nil {
    58  			t.Errorf("delete %s, err=%v", dir, err)
    59  		}
    60  	})
    61  }