Skip to content

Commit 18e6a40

Browse files
committed
test
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 3800497 commit 18e6a40

File tree

1 file changed

+45
-14
lines changed

1 file changed

+45
-14
lines changed
Lines changed: 45 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
package io.javaoperatorsdk.operator.api.reconciler;
22

3+
import java.util.Map;
4+
35
import org.junit.jupiter.api.Test;
46

57
import io.fabric8.kubeapitest.junit.EnableKubeAPIServer;
8+
import io.fabric8.kubernetes.api.model.ConfigMap;
69
import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
710
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
811
import io.fabric8.kubernetes.client.KubernetesClient;
@@ -19,27 +22,55 @@ class PrimaryUpdateAndCacheUtilsIntegrationTest {
1922

2023
@Test
2124
void testFinalizerAddAndRemoval() {
22-
var cm =
23-
client
24-
.resource(
25-
new ConfigMapBuilder()
26-
.withMetadata(
27-
new ObjectMetaBuilder()
28-
.withName(TEST_RESOURCE_NAME)
29-
.withNamespace(DEFAULT_NS)
30-
.build())
31-
.build())
32-
.create();
33-
25+
var cm = createConfigMap();
3426
PrimaryUpdateAndCacheUtils.addFinalizer(client, cm, FINALIZER);
3527

36-
cm = client.configMaps().inNamespace(DEFAULT_NS).withName(TEST_RESOURCE_NAME).get();
28+
cm = getTestConfigMap();
3729
assertThat(cm.getMetadata().getFinalizers()).containsExactly(FINALIZER);
3830

3931
PrimaryUpdateAndCacheUtils.removeFinalizer(client, cm, FINALIZER);
4032

41-
cm = client.configMaps().inNamespace(DEFAULT_NS).withName(TEST_RESOURCE_NAME).get();
33+
cm = getTestConfigMap();
4234
assertThat(cm.getMetadata().getFinalizers()).isEmpty();
4335
client.resource(cm).delete();
4436
}
37+
38+
private static ConfigMap getTestConfigMap() {
39+
return client.configMaps().inNamespace(DEFAULT_NS).withName(TEST_RESOURCE_NAME).get();
40+
}
41+
42+
@Test
43+
void testFinalizerAddRetryOnOptimisticLockFailure() {
44+
var cm = createConfigMap();
45+
// update resource, so it has a new version on the server
46+
cm.setData(Map.of("k", "v"));
47+
client.resource(cm).update();
48+
49+
PrimaryUpdateAndCacheUtils.addFinalizer(client, cm, FINALIZER);
50+
51+
cm = getTestConfigMap();
52+
assertThat(cm.getMetadata().getFinalizers()).containsExactly(FINALIZER);
53+
54+
cm.setData(Map.of("k2", "v2"));
55+
client.resource(cm).update();
56+
57+
PrimaryUpdateAndCacheUtils.removeFinalizer(client, cm, FINALIZER);
58+
cm = getTestConfigMap();
59+
assertThat(cm.getMetadata().getFinalizers()).isEmpty();
60+
61+
client.resource(cm).delete();
62+
}
63+
64+
private static ConfigMap createConfigMap() {
65+
return client
66+
.resource(
67+
new ConfigMapBuilder()
68+
.withMetadata(
69+
new ObjectMetaBuilder()
70+
.withName(TEST_RESOURCE_NAME)
71+
.withNamespace(DEFAULT_NS)
72+
.build())
73+
.build())
74+
.create();
75+
}
4576
}

0 commit comments

Comments
 (0)