1
1
package controllers
2
2
3
3
import (
4
- "context"
5
4
"errors"
6
5
"testing"
7
6
@@ -18,24 +17,12 @@ import (
18
17
"k8s.io/apimachinery/pkg/runtime"
19
18
"k8s.io/apimachinery/pkg/types"
20
19
fakeK8s "k8s.io/client-go/kubernetes/fake"
21
- "k8s.io/client-go/rest"
22
20
"sigs.k8s.io/controller-runtime/pkg/client"
23
21
"sigs.k8s.io/controller-runtime/pkg/client/fake"
24
- "sigs.k8s.io/controller-runtime/pkg/log"
25
22
"sigs.k8s.io/controller-runtime/pkg/reconcile"
26
23
)
27
24
28
25
var (
29
- recoverstalevolumeTestLog = log .Log .WithName ("recoverstalevolume_controller_test" )
30
-
31
- recoverStaleVolCRName = "test-vol-cr"
32
- recoverStaleVolCRNamespace = "test-namespace"
33
- testDeploymentName = "test-deployment"
34
- testDeploymentNamespace = "default"
35
- testPVName = "test-pv"
36
- testPVCName = "test-pvc"
37
- testStorageClassName = "test-csi-storage-class"
38
-
39
26
recoverStaleVolumeReconcileRequest = reconcile.Request {
40
27
NamespacedName : types.NamespacedName {
41
28
Name : recoverStaleVolCRName ,
72
59
Namespace : testDeploymentNamespace ,
73
60
},
74
61
Spec : corev1.PodSpec {
62
+ NodeName : testNode1 ,
75
63
Volumes : []corev1.Volume {
76
64
{
77
65
Name : testPVName ,
92
80
},
93
81
Spec : corev1.PersistentVolumeClaimSpec {
94
82
StorageClassName : & testStorageClassName ,
83
+ VolumeName : testPVName ,
95
84
},
96
85
}
97
86
@@ -100,20 +89,29 @@ var (
100
89
Name : csiNodePodPrefix + "-pod1" ,
101
90
Namespace : csiOperatorNamespace ,
102
91
},
92
+ Spec : corev1.PodSpec {
93
+ NodeName : testNode1 ,
94
+ },
103
95
}
104
96
105
97
nodeServerPod2 = & corev1.Pod {
106
98
ObjectMeta : metav1.ObjectMeta {
107
99
Name : csiNodePodPrefix + "-pod2" ,
108
100
Namespace : csiOperatorNamespace ,
109
101
},
102
+ Spec : corev1.PodSpec {
103
+ NodeName : testNode2 ,
104
+ },
110
105
}
111
106
112
107
nodeServerPod3 = & corev1.Pod {
113
108
ObjectMeta : metav1.ObjectMeta {
114
109
Name : csiNodePodPrefix + "-pod3" ,
115
110
Namespace : csiOperatorNamespace ,
116
111
},
112
+ Spec : corev1.PodSpec {
113
+ NodeName : testNode3 ,
114
+ },
117
115
}
118
116
)
119
117
@@ -127,7 +125,7 @@ func TestRecoverStaleVolumeReconcile(t *testing.T) {
127
125
expectedErr error
128
126
}{
129
127
{
130
- testCaseName : "Positive: Successful [Partial] " ,
128
+ testCaseName : "Positive: Successful" ,
131
129
objects : []runtime.Object {
132
130
recoverStaleVolumeCR ,
133
131
deployment ,
@@ -290,31 +288,31 @@ func TestRecoverStaleVolumeReconcile(t *testing.T) {
290
288
expectedResp : reconcile.Result {},
291
289
expectedErr : errors .New (ListError ),
292
290
},
293
- {
294
- testCaseName : "Negative: Failed to get In Cluster Config" ,
295
- objects : []runtime.Object {
296
- recoverStaleVolumeCR ,
297
- deployment ,
298
- deploymentPod ,
299
- pvc ,
300
- nodeServerPod1 ,
301
- nodeServerPod2 ,
302
- nodeServerPod3 ,
303
- },
304
- clientFunc : func (objs []runtime.Object ) client.WithWatch {
305
- return fake .NewClientBuilder ().WithRuntimeObjects (objs ... ).Build ()
306
- },
307
- kubeClientFunc : func () (* KubernetesClient , error ) {
308
- return nil , rest .ErrNotInCluster
309
- },
310
- expectedResp : reconcile.Result {},
311
- expectedErr : rest .ErrNotInCluster ,
312
- },
291
+ // {
292
+ // testCaseName: "Negative: Failed to get In Cluster Config",
293
+ // objects: []runtime.Object{
294
+ // recoverStaleVolumeCR,
295
+ // deployment,
296
+ // deploymentPod,
297
+ // pvc,
298
+ // nodeServerPod1,
299
+ // nodeServerPod2,
300
+ // nodeServerPod3,
301
+ // },
302
+ // clientFunc: func(objs []runtime.Object) client.WithWatch {
303
+ // return fake.NewClientBuilder().WithRuntimeObjects(objs...).Build()
304
+ // },
305
+ // kubeClientFunc: func() (*KubernetesClient, error) {
306
+ // return nil, rest.ErrNotInCluster
307
+ // },
308
+ // expectedResp: reconcile.Result{},
309
+ // expectedErr: rest.ErrNotInCluster,
310
+ // },
313
311
}
314
312
315
313
for _ , testcase := range testCases {
316
314
t .Run (testcase .testCaseName , func (t * testing.T ) {
317
- recoverstalevolumeTestLog .Info ("Testcase being executed" , "testcase" , testcase .testCaseName )
315
+ testLog .Info ("Testcase being executed" , "testcase" , testcase .testCaseName )
318
316
319
317
scheme := setupScheme ()
320
318
client := testcase .clientFunc (testcase .objects )
@@ -323,10 +321,11 @@ func TestRecoverStaleVolumeReconcile(t *testing.T) {
323
321
recoverStaleVolumeReconciler := & RecoverStaleVolumeReconciler {
324
322
Client : client ,
325
323
Scheme : scheme ,
324
+ IsTest : true ,
326
325
}
327
326
328
- res , err := recoverStaleVolumeReconciler .Reconcile (context . TODO () , recoverStaleVolumeReconcileRequest )
329
- recoverstalevolumeTestLog .Info ("Testcase return values" , "result" , res , "error" , err )
327
+ res , err := recoverStaleVolumeReconciler .Reconcile (testCtx , recoverStaleVolumeReconcileRequest )
328
+ testLog .Info ("Testcase return values" , "result" , res , "error" , err )
330
329
331
330
assert .Equal (t , testcase .expectedResp , res )
332
331
0 commit comments