@@ -370,41 +370,56 @@ func TestGetSnapshotStatus(t *testing.T) {
370
370
}
371
371
372
372
tests := []struct {
373
- name string
374
- snapshotID string
375
- input * csi.ListSnapshotsRequest
376
- output * csi.ListSnapshotsResponse
377
- injectError codes.Code
378
- expectError bool
379
- expectReady bool
380
- expectCreateAt time.Time
381
- expectSize int64
373
+ name string
374
+ snapshotID string
375
+ listSnapshotsSupported bool
376
+ input * csi.ListSnapshotsRequest
377
+ output * csi.ListSnapshotsResponse
378
+ injectError codes.Code
379
+ expectError bool
380
+ expectReady bool
381
+ expectCreateAt time.Time
382
+ expectSize int64
382
383
}{
383
384
{
384
- name : "success" ,
385
- snapshotID : defaultID ,
386
- input : defaultRequest ,
387
- output : defaultResponse ,
388
- expectError : false ,
389
- expectReady : true ,
390
- expectCreateAt : createTime ,
391
- expectSize : size ,
385
+ name : "success" ,
386
+ snapshotID : defaultID ,
387
+ listSnapshotsSupported : true ,
388
+ input : defaultRequest ,
389
+ output : defaultResponse ,
390
+ expectError : false ,
391
+ expectReady : true ,
392
+ expectCreateAt : createTime ,
393
+ expectSize : size ,
392
394
},
393
395
{
394
- name : "gRPC transient error" ,
395
- snapshotID : defaultID ,
396
- input : defaultRequest ,
397
- output : nil ,
398
- injectError : codes .DeadlineExceeded ,
399
- expectError : true ,
396
+ name : "ListSnapshots not supported" ,
397
+ snapshotID : defaultID ,
398
+ listSnapshotsSupported : false ,
399
+ input : defaultRequest ,
400
+ output : defaultResponse ,
401
+ expectError : false ,
402
+ expectReady : true ,
403
+ expectCreateAt : time.Time {},
404
+ expectSize : 0 ,
400
405
},
401
406
{
402
- name : "gRPC final error" ,
403
- snapshotID : defaultID ,
404
- input : defaultRequest ,
405
- output : nil ,
406
- injectError : codes .NotFound ,
407
- expectError : true ,
407
+ name : "gRPC transient error" ,
408
+ snapshotID : defaultID ,
409
+ listSnapshotsSupported : true ,
410
+ input : defaultRequest ,
411
+ output : nil ,
412
+ injectError : codes .DeadlineExceeded ,
413
+ expectError : true ,
414
+ },
415
+ {
416
+ name : "gRPC final error" ,
417
+ snapshotID : defaultID ,
418
+ listSnapshotsSupported : true ,
419
+ input : defaultRequest ,
420
+ output : nil ,
421
+ injectError : codes .NotFound ,
422
+ expectError : true ,
408
423
},
409
424
}
410
425
@@ -425,8 +440,25 @@ func TestGetSnapshotStatus(t *testing.T) {
425
440
}
426
441
427
442
// Setup expectation
443
+ listSnapshotsCap := & csi.ControllerServiceCapability {
444
+ Type : & csi.ControllerServiceCapability_Rpc {
445
+ Rpc : & csi.ControllerServiceCapability_RPC {
446
+ Type : csi .ControllerServiceCapability_RPC_LIST_SNAPSHOTS ,
447
+ },
448
+ },
449
+ }
450
+
451
+ var controllerCapabilities []* csi.ControllerServiceCapability
452
+ if test .listSnapshotsSupported {
453
+ controllerCapabilities = append (controllerCapabilities , listSnapshotsCap )
454
+ }
428
455
if in != nil {
429
- controllerServer .EXPECT ().ListSnapshots (gomock .Any (), in ).Return (out , injectedErr ).Times (1 )
456
+ controllerServer .EXPECT ().ControllerGetCapabilities (gomock .Any (), gomock .Any ()).Return (& csi.ControllerGetCapabilitiesResponse {
457
+ Capabilities : controllerCapabilities ,
458
+ }, nil ).Times (1 )
459
+ if test .listSnapshotsSupported {
460
+ controllerServer .EXPECT ().ListSnapshots (gomock .Any (), in ).Return (out , injectedErr ).Times (1 )
461
+ }
430
462
}
431
463
432
464
s := NewSnapshotter (csiConn )
0 commit comments