@@ -22,6 +22,8 @@ import (
22
22
"testing"
23
23
24
24
corev1 "k8s.io/api/core/v1"
25
+ v1 "k8s.io/api/core/v1"
26
+ storage "k8s.io/api/storage/v1"
25
27
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
26
28
)
27
29
@@ -230,3 +232,64 @@ func TestTranslateAzureDiskInTreePVToCSI(t *testing.T) {
230
232
}
231
233
}
232
234
}
235
+
236
+ func TestTranslateInTreeStorageClassToCSI (t * testing.T ) {
237
+ translator := NewAzureDiskCSITranslator ()
238
+
239
+ tcs := []struct {
240
+ name string
241
+ options * storage.StorageClass
242
+ expOptions * storage.StorageClass
243
+ expErr bool
244
+ }{
245
+ {
246
+ name : "nothing special" ,
247
+ options : NewStorageClass (map [string ]string {"foo" : "bar" }, nil ),
248
+ expOptions : NewStorageClass (map [string ]string {"foo" : "bar" }, nil ),
249
+ },
250
+ {
251
+ name : "empty params" ,
252
+ options : NewStorageClass (map [string ]string {}, nil ),
253
+ expOptions : NewStorageClass (map [string ]string {}, nil ),
254
+ },
255
+ {
256
+ name : "zone" ,
257
+ options : NewStorageClass (map [string ]string {"zone" : "foo" }, nil ),
258
+ expOptions : NewStorageClass (map [string ]string {}, generateToplogySelectors (AzureDiskTopologyKey , []string {"foo" })),
259
+ },
260
+ {
261
+ name : "zones" ,
262
+ options : NewStorageClass (map [string ]string {"zones" : "foo,bar,baz" }, nil ),
263
+ expOptions : NewStorageClass (map [string ]string {}, generateToplogySelectors (AzureDiskTopologyKey , []string {"foo" , "bar" , "baz" })),
264
+ },
265
+ {
266
+ name : "some normal topology" ,
267
+ options : NewStorageClass (map [string ]string {}, generateToplogySelectors (AzureDiskTopologyKey , []string {"foo" })),
268
+ expOptions : NewStorageClass (map [string ]string {}, generateToplogySelectors (AzureDiskTopologyKey , []string {"foo" })),
269
+ },
270
+ {
271
+ name : "some translated topology" ,
272
+ options : NewStorageClass (map [string ]string {}, generateToplogySelectors (v1 .LabelZoneFailureDomain , []string {"foo" })),
273
+ expOptions : NewStorageClass (map [string ]string {}, generateToplogySelectors (AzureDiskTopologyKey , []string {"foo" })),
274
+ },
275
+ {
276
+ name : "zone and topology" ,
277
+ options : NewStorageClass (map [string ]string {"zone" : "foo" }, generateToplogySelectors (AzureDiskTopologyKey , []string {"foo" })),
278
+ expErr : true ,
279
+ },
280
+ }
281
+
282
+ for _ , tc := range tcs {
283
+ t .Logf ("Testing %v" , tc .name )
284
+ gotOptions , err := translator .TranslateInTreeStorageClassToCSI (tc .options )
285
+ if err != nil && ! tc .expErr {
286
+ t .Errorf ("Did not expect error but got: %v" , err )
287
+ }
288
+ if err == nil && tc .expErr {
289
+ t .Errorf ("Expected error, but did not get one." )
290
+ }
291
+ if ! reflect .DeepEqual (gotOptions , tc .expOptions ) {
292
+ t .Errorf ("Got parameters: %v, expected :%v" , gotOptions , tc .expOptions )
293
+ }
294
+ }
295
+ }
0 commit comments