@@ -40,36 +40,55 @@ func TestResolveLibraryItemStorage(t *testing.T) {
40
40
testCases := []struct {
41
41
name string
42
42
nilDatacenter bool
43
+ datastoreMap map [string ]mo.Datastore
43
44
topLevelDirectoryCreateSupported * bool
44
45
}{
45
46
{
46
47
name : "Nil datacenter and nil topLevelCreate" ,
47
48
nilDatacenter : true ,
49
+ datastoreMap : nil ,
48
50
topLevelDirectoryCreateSupported : nil ,
49
51
},
50
52
{
51
53
name : "Nil datacenter and false topLevelCreate" ,
52
54
nilDatacenter : true ,
55
+ datastoreMap : nil ,
53
56
topLevelDirectoryCreateSupported : types .New (false ),
54
57
},
55
58
{
56
59
name : "Nil datacenter and true topLevelCreate" ,
57
60
nilDatacenter : true ,
61
+ datastoreMap : nil ,
58
62
topLevelDirectoryCreateSupported : types .New (true ),
59
63
},
60
64
{
61
65
name : "Non-nil datacenter and nil topLevelCreate" ,
62
66
nilDatacenter : false ,
67
+ datastoreMap : nil ,
63
68
topLevelDirectoryCreateSupported : nil ,
64
69
},
65
70
{
66
71
name : "Non-Nil datacenter and false topLevelCreate" ,
67
72
nilDatacenter : false ,
73
+ datastoreMap : nil ,
68
74
topLevelDirectoryCreateSupported : types .New (false ),
69
75
},
70
76
{
71
77
name : "Non-Nil datacenter and true topLevelCreate" ,
72
78
nilDatacenter : false ,
79
+ datastoreMap : nil ,
80
+ topLevelDirectoryCreateSupported : types .New (true ),
81
+ },
82
+ {
83
+ name : "Nil datastoreMap" ,
84
+ nilDatacenter : true ,
85
+ datastoreMap : nil ,
86
+ topLevelDirectoryCreateSupported : nil ,
87
+ },
88
+ {
89
+ name : "Non-Nil datastoreMap and true topLevelCreate" ,
90
+ nilDatacenter : true ,
91
+ datastoreMap : map [string ]mo.Datastore {},
73
92
topLevelDirectoryCreateSupported : types .New (true ),
74
93
},
75
94
}
@@ -105,7 +124,7 @@ func TestResolveLibraryItemStorage(t *testing.T) {
105
124
ds .Properties (
106
125
ctx ,
107
126
ds .Reference (),
108
- []string {"name" , "summary" },
127
+ []string {"name" , "summary.url " },
109
128
& moDS )) {
110
129
t .FailNow ()
111
130
}
@@ -142,16 +161,36 @@ func TestResolveLibraryItemStorage(t *testing.T) {
142
161
ds .Capability .TopLevelDirectoryCreateSupported = tc .topLevelDirectoryCreateSupported
143
162
})
144
163
164
+ nilDSM := tc .datastoreMap == nil
165
+
145
166
if ! assert .NoError (
146
167
t ,
147
- lf .ResolveLibraryItemStorage (ctx , dc , storage )) {
168
+ lf .ResolveLibraryItemStorage (
169
+ ctx ,
170
+ dc ,
171
+ tc .datastoreMap ,
172
+ storage )) {
148
173
149
174
t .FailNow ()
150
175
}
151
176
152
177
assert .Len (t , storage , 1 )
153
178
assert .Len (t , storage [0 ].StorageURIs , 2 )
154
179
180
+ if nilDSM {
181
+ assert .Nil (t , tc .datastoreMap )
182
+ } else if assert .NotNil (t , tc .datastoreMap ) {
183
+ if assert .Len (t , tc .datastoreMap , 1 ) {
184
+ dsv := ds .Reference ().Value
185
+ if assert .Contains (t , tc .datastoreMap , dsv ) {
186
+ ds := tc .datastoreMap [dsv ]
187
+ assert .Equal (t , ds .Name , dsName )
188
+ assert .Equal (t , ds .Summary .Url , dsURL )
189
+ assert .Equal (t , ds .Capability .TopLevelDirectoryCreateSupported , tc .topLevelDirectoryCreateSupported )
190
+ }
191
+ }
192
+ }
193
+
155
194
for _ , s := range storage {
156
195
for _ , u := range s .StorageURIs {
157
196
var path object.DatastorePath
0 commit comments