@@ -455,12 +455,14 @@ func TestShouldProvision(t *testing.T) {
455
455
}
456
456
457
457
func TestShouldDelete (t * testing.T ) {
458
+ timestamp := metav1 .NewTime (time .Now ())
458
459
tests := []struct {
459
- name string
460
- provisionerName string
461
- volume * v1.PersistentVolume
462
- serverGitVersion string
463
- expectedShould bool
460
+ name string
461
+ provisionerName string
462
+ volume * v1.PersistentVolume
463
+ deletionTimestamp * metav1.Time
464
+ serverGitVersion string
465
+ expectedShould bool
464
466
}{
465
467
{
466
468
name : "should delete" ,
@@ -504,11 +506,27 @@ func TestShouldDelete(t *testing.T) {
504
506
serverGitVersion : "v1.5.0" ,
505
507
expectedShould : false ,
506
508
},
509
+ {
510
+ name : "1.9 non-nil deletion timestamp" ,
511
+ provisionerName : "foo.bar/baz" ,
512
+ volume : newVolume ("volume-1" , v1 .VolumeReleased , v1 .PersistentVolumeReclaimDelete , map [string ]string {annDynamicallyProvisioned : "foo.bar/baz" }),
513
+ deletionTimestamp : & timestamp ,
514
+ serverGitVersion : "v1.9.0" ,
515
+ expectedShould : false ,
516
+ },
517
+ {
518
+ name : "1.9 nil deletion timestamp" ,
519
+ provisionerName : "foo.bar/baz" ,
520
+ volume : newVolume ("volume-1" , v1 .VolumeReleased , v1 .PersistentVolumeReclaimDelete , map [string ]string {annDynamicallyProvisioned : "foo.bar/baz" }),
521
+ serverGitVersion : "v1.9.0" ,
522
+ expectedShould : true ,
523
+ },
507
524
}
508
525
for _ , test := range tests {
509
526
client := fake .NewSimpleClientset ()
510
527
provisioner := newTestProvisioner ()
511
528
ctrl := newTestProvisionController (client , test .provisionerName , provisioner , test .serverGitVersion )
529
+ test .volume .ObjectMeta .DeletionTimestamp = test .deletionTimestamp
512
530
513
531
should := ctrl .shouldDelete (test .volume )
514
532
if test .expectedShould != should {
0 commit comments