@@ -27,6 +27,7 @@ import (
27
27
appsv1 "k8s.io/api/apps/v1"
28
28
corev1 "k8s.io/api/core/v1"
29
29
"k8s.io/apimachinery/pkg/api/errors"
30
+ kerrors "k8s.io/apimachinery/pkg/api/errors"
30
31
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
31
32
"k8s.io/apimachinery/pkg/runtime"
32
33
"k8s.io/apimachinery/pkg/types"
@@ -172,6 +173,19 @@ var _ = Describe("Fake client", func() {
172
173
Expect (obj .ObjectMeta .ResourceVersion ).To (Equal ("1" ))
173
174
})
174
175
176
+ It ("should error on create with set resourceVersion" , func () {
177
+ By ("Creating a new configmap" )
178
+ newcm := & corev1.ConfigMap {
179
+ ObjectMeta : metav1.ObjectMeta {
180
+ Name : "new-test-cm" ,
181
+ Namespace : "ns2" ,
182
+ ResourceVersion : "1" ,
183
+ },
184
+ }
185
+ err := cl .Create (context .Background (), newcm )
186
+ Expect (kerrors .IsBadRequest (err )).To (BeTrue ())
187
+ })
188
+
175
189
It ("should be able to Create with GenerateName" , func () {
176
190
By ("Creating a new configmap" )
177
191
newcm := & corev1.ConfigMap {
@@ -211,7 +225,7 @@ var _ = Describe("Fake client", func() {
211
225
ObjectMeta : metav1.ObjectMeta {
212
226
Name : "test-cm" ,
213
227
Namespace : "ns2" ,
214
- ResourceVersion : "1 " ,
228
+ ResourceVersion : "" ,
215
229
},
216
230
Data : map [string ]string {
217
231
"test-key" : "new-value" ,
@@ -229,7 +243,34 @@ var _ = Describe("Fake client", func() {
229
243
err = cl .Get (context .Background (), namespacedName , obj )
230
244
Expect (err ).To (BeNil ())
231
245
Expect (obj ).To (Equal (newcm ))
232
- Expect (obj .ObjectMeta .ResourceVersion ).To (Equal ("2" ))
246
+ Expect (obj .ObjectMeta .ResourceVersion ).To (Equal ("1" ))
247
+ })
248
+
249
+ It ("should reject updates with non-matching ResourceVersion" , func () {
250
+ By ("Updating a new configmap" )
251
+ newcm := & corev1.ConfigMap {
252
+ ObjectMeta : metav1.ObjectMeta {
253
+ Name : "test-cm" ,
254
+ Namespace : "ns2" ,
255
+ ResourceVersion : "1" ,
256
+ },
257
+ Data : map [string ]string {
258
+ "test-key" : "new-value" ,
259
+ },
260
+ }
261
+ err := cl .Update (context .Background (), newcm )
262
+ Expect (kerrors .IsConflict (err )).To (BeTrue ())
263
+
264
+ By ("Getting the configmap" )
265
+ namespacedName := types.NamespacedName {
266
+ Name : "test-cm" ,
267
+ Namespace : "ns2" ,
268
+ }
269
+ obj := & corev1.ConfigMap {}
270
+ err = cl .Get (context .Background (), namespacedName , obj )
271
+ Expect (err ).To (BeNil ())
272
+ Expect (obj ).To (Equal (cm ))
273
+ Expect (obj .ObjectMeta .ResourceVersion ).To (Equal ("" ))
233
274
})
234
275
235
276
It ("should be able to Delete" , func () {
0 commit comments