1
1
/*
2
- Copyright (c) 2015 VMware, Inc. All Rights Reserved.
2
+ Copyright (c) 2015-2024 VMware, Inc. All Rights Reserved.
3
3
4
4
Licensed under the Apache License, Version 2.0 (the "License");
5
5
you may not use this file except in compliance with the License.
6
6
You may obtain a copy of the License at
7
7
8
- http://www.apache.org/licenses/LICENSE-2.0
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
9
10
10
Unless required by applicable law or agreed to in writing, software
11
11
distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,7 +14,60 @@ See the License for the specific language governing permissions and
14
14
limitations under the License.
15
15
*/
16
16
17
- package object
17
+ package object_test
18
+
19
+ import (
20
+ "context"
21
+ "testing"
22
+
23
+ "github.com/vmware/govmomi/find"
24
+ "github.com/vmware/govmomi/object"
25
+ "github.com/vmware/govmomi/simulator"
26
+ "github.com/vmware/govmomi/vim25"
27
+ )
18
28
19
29
// Datacenter should implement the Reference interface.
20
- var _ Reference = Datacenter {}
30
+ var _ object.Reference = object.Datacenter {}
31
+
32
+ func TestDatacenterFolders (t * testing.T ) {
33
+ model := simulator .VPX ()
34
+ model .Datacenter = 2
35
+ model .Folder = 1
36
+
37
+ simulator .Test (func (ctx context.Context , c * vim25.Client ) {
38
+ search := object .NewSearchIndex (c )
39
+ finder := find .NewFinder (c )
40
+
41
+ dc , err := finder .Datacenter (ctx , "DC1" )
42
+ if err != nil {
43
+ t .Fatal (err )
44
+ }
45
+
46
+ f , err := dc .Folders (ctx )
47
+ if err != nil {
48
+ t .Fatal (err )
49
+ }
50
+
51
+ folders := []* object.Folder {
52
+ f .DatastoreFolder ,
53
+ f .HostFolder ,
54
+ f .NetworkFolder ,
55
+ f .VmFolder ,
56
+ }
57
+
58
+ for _ , folder := range folders {
59
+ p := "/F0/DC1/" + folder .Name ()
60
+ if p != folder .InventoryPath {
61
+ t .Errorf ("InventoryPath=%s" , folder .InventoryPath )
62
+ }
63
+
64
+ ref , err := search .FindByInventoryPath (ctx , folder .InventoryPath )
65
+ if err != nil {
66
+ t .Fatal (err )
67
+ }
68
+ if ref == nil {
69
+ t .Errorf ("invalid InventoryPath: %s" , folder .InventoryPath )
70
+ }
71
+ }
72
+ }, model )
73
+ }
0 commit comments