@@ -50,6 +50,28 @@ func TestDPAReconciler_ValidateDataProtectionCR(t *testing.T) {
50
50
wantErr : false ,
51
51
want : true ,
52
52
},
53
+ {
54
+ name : "given valid DPA CR, error case" ,
55
+ dpa : & oadpv1alpha1.DataProtectionApplication {
56
+ ObjectMeta : metav1.ObjectMeta {
57
+ Name : "test-DPA-CR" ,
58
+ Namespace : "test-ns" ,
59
+ },
60
+ Spec : oadpv1alpha1.DataProtectionApplicationSpec {
61
+ Configuration : & oadpv1alpha1.ApplicationConfig {
62
+ Velero : & oadpv1alpha1.VeleroConfig {
63
+ DefaultPlugins : []oadpv1alpha1.DefaultPlugin {
64
+ oadpv1alpha1 .DefaultPluginAWS ,
65
+ },
66
+ NoDefaultBackupLocation : true ,
67
+ },
68
+ },
69
+ },
70
+ },
71
+ objects : []client.Object {},
72
+ wantErr : true ,
73
+ want : false ,
74
+ },
53
75
{
54
76
name : "given invalid DPA CR, velero configuration is nil, error case" ,
55
77
dpa : & oadpv1alpha1.DataProtectionApplication {
@@ -344,6 +366,81 @@ func TestDPAReconciler_ValidateDataProtectionCR(t *testing.T) {
344
366
wantErr : true ,
345
367
want : false ,
346
368
},
369
+ {
370
+ name : "given valid DPA CR AWS Default Plugin with credentials" ,
371
+ dpa : & oadpv1alpha1.DataProtectionApplication {
372
+ ObjectMeta : metav1.ObjectMeta {
373
+ Name : "test-DPA-CR" ,
374
+ Namespace : "test-ns" ,
375
+ },
376
+ Spec : oadpv1alpha1.DataProtectionApplicationSpec {
377
+ BackupLocations : []oadpv1alpha1.BackupLocation {
378
+ {
379
+ Velero : & v1.BackupStorageLocationSpec {
380
+ Provider : "velero.io/aws" ,
381
+ Credential : & corev1.SecretKeySelector {
382
+ LocalObjectReference : corev1.LocalObjectReference {
383
+ Name : "Test" ,
384
+ },
385
+ Key : "Creds" ,
386
+ Optional : new (bool ),
387
+ },
388
+ },
389
+ },
390
+ },
391
+ Configuration : & oadpv1alpha1.ApplicationConfig {
392
+ Velero : & oadpv1alpha1.VeleroConfig {
393
+ DefaultPlugins : []oadpv1alpha1.DefaultPlugin {
394
+ oadpv1alpha1 .DefaultPluginAWS ,
395
+ },
396
+ },
397
+ },
398
+ },
399
+ },
400
+ objects : []client.Object {},
401
+ wantErr : false ,
402
+ want : true ,
403
+ },
404
+ {
405
+ name : "given valid DPA CR AWS Default Plugin with credentials and one without" ,
406
+ dpa : & oadpv1alpha1.DataProtectionApplication {
407
+ ObjectMeta : metav1.ObjectMeta {
408
+ Name : "test-DPA-CR" ,
409
+ Namespace : "test-ns" ,
410
+ },
411
+ Spec : oadpv1alpha1.DataProtectionApplicationSpec {
412
+ BackupLocations : []oadpv1alpha1.BackupLocation {
413
+ {
414
+ Velero : & v1.BackupStorageLocationSpec {
415
+ Provider : "velero.io/aws" ,
416
+ Credential : & corev1.SecretKeySelector {
417
+ LocalObjectReference : corev1.LocalObjectReference {
418
+ Name : "Test" ,
419
+ },
420
+ Key : "Creds" ,
421
+ Optional : new (bool ),
422
+ },
423
+ },
424
+ },
425
+ {
426
+ Velero : & v1.BackupStorageLocationSpec {
427
+ Provider : "velero.io/aws" ,
428
+ },
429
+ },
430
+ },
431
+ Configuration : & oadpv1alpha1.ApplicationConfig {
432
+ Velero : & oadpv1alpha1.VeleroConfig {
433
+ DefaultPlugins : []oadpv1alpha1.DefaultPlugin {
434
+ oadpv1alpha1 .DefaultPluginAWS ,
435
+ },
436
+ },
437
+ },
438
+ },
439
+ },
440
+ objects : []client.Object {},
441
+ wantErr : true ,
442
+ want : false ,
443
+ },
347
444
}
348
445
for _ , tt := range tests {
349
446
tt .objects = append (tt .objects , tt .dpa )
0 commit comments