Skip to content

Commit b217a9c

Browse files
authored
Merge pull request #4944 from a7i/unit-test-retain-pv-pvc
unit test for interpreter retain (pv, pvc)
2 parents fbb6411 + 1496888 commit b217a9c

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

pkg/resourceinterpreter/default/native/retain_test.go

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,3 +180,81 @@ func Test_retainSecretServiceAccountToken(t *testing.T) {
180180
})
181181
}
182182
}
183+
184+
func Test_retainPersistentVolumeFields(t *testing.T) {
185+
createPV := func(claimRef *corev1.ObjectReference) *unstructured.Unstructured {
186+
ret, _ := helper.ToUnstructured(&corev1.PersistentVolume{
187+
ObjectMeta: metav1.ObjectMeta{
188+
Name: "pv",
189+
},
190+
Spec: corev1.PersistentVolumeSpec{
191+
ClaimRef: claimRef,
192+
},
193+
})
194+
return ret
195+
}
196+
type args struct {
197+
desired *unstructured.Unstructured
198+
observed *unstructured.Unstructured
199+
}
200+
tests := []struct {
201+
name string
202+
args args
203+
want *unstructured.Unstructured
204+
}{
205+
{
206+
name: "retain claimRef",
207+
args: args{
208+
desired: createPV(&corev1.ObjectReference{Name: "pvc-1", Namespace: "default"}),
209+
observed: createPV(&corev1.ObjectReference{Name: "pvc-2", Namespace: "default"}),
210+
},
211+
want: createPV(&corev1.ObjectReference{Name: "pvc-2", Namespace: "default"}),
212+
},
213+
}
214+
for _, tt := range tests {
215+
t.Run(tt.name, func(t *testing.T) {
216+
got, err := retainPersistentVolumeFields(tt.args.desired, tt.args.observed)
217+
assert.Nil(t, err, "retainPersistentVolumeFields() error = %v", err)
218+
assert.Equalf(t, tt.want, got, "retainPersistentVolumeFields(%v, %v)", tt.args.desired, tt.args.observed)
219+
})
220+
}
221+
}
222+
223+
func Test_retainPersistentVolumeClaimFields(t *testing.T) {
224+
createPVC := func(volumeName string) *unstructured.Unstructured {
225+
ret, _ := helper.ToUnstructured(&corev1.PersistentVolumeClaim{
226+
ObjectMeta: metav1.ObjectMeta{
227+
Name: "pvc",
228+
},
229+
Spec: corev1.PersistentVolumeClaimSpec{
230+
VolumeName: volumeName,
231+
},
232+
})
233+
return ret
234+
}
235+
type args struct {
236+
desired *unstructured.Unstructured
237+
observed *unstructured.Unstructured
238+
}
239+
tests := []struct {
240+
name string
241+
args args
242+
want *unstructured.Unstructured
243+
}{
244+
{
245+
name: "retain observed volume name",
246+
args: args{
247+
desired: createPVC("desired-volume-name"),
248+
observed: createPVC("observed-volume-name"),
249+
},
250+
want: createPVC("observed-volume-name"),
251+
},
252+
}
253+
for _, tt := range tests {
254+
t.Run(tt.name, func(t *testing.T) {
255+
got, err := retainPersistentVolumeClaimFields(tt.args.desired, tt.args.observed)
256+
assert.Nil(t, err, "retainPersistentVolumeClaimFields() error = %v", err)
257+
assert.Equalf(t, tt.want, got, "retainPersistentVolumeClaimFields(%v, %v)", tt.args.desired, tt.args.observed)
258+
})
259+
}
260+
}

0 commit comments

Comments
 (0)