-
Notifications
You must be signed in to change notification settings - Fork 236
Expand file tree
/
Copy pathReconcilerIntegrationTest.java
More file actions
75 lines (63 loc) · 2.64 KB
/
ReconcilerIntegrationTest.java
File metadata and controls
75 lines (63 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
* Copyright Java Operator SDK Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package {{groupId}};
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import static {{groupId}}.ConfigMapDependentResource.KEY;
import static org.assertj.core.api.Assertions.assertThat;
import static org.awaitility.Awaitility.await;
class {{artifactClassId}}ReconcilerIntegrationTest {
public static final String RESOURCE_NAME = "test1";
public static final String INITIAL_VALUE = "initial value";
public static final String CHANGED_VALUE = "changed value";
@RegisterExtension
LocallyRunOperatorExtension extension =
LocallyRunOperatorExtension.builder()
.withReconciler({{artifactClassId}}Reconciler.class)
.build();
@Test
void testCRUDOperations() {
var cr = extension.create(testResource());
await().untilAsserted(() -> {
var cm = extension.get(ConfigMap.class, RESOURCE_NAME);
assertThat(cm).isNotNull();
assertThat(cm.getData()).containsEntry(KEY, INITIAL_VALUE);
});
cr.getSpec().setValue(CHANGED_VALUE);
cr = extension.replace(cr);
await().untilAsserted(() -> {
var cm = extension.get(ConfigMap.class, RESOURCE_NAME);
assertThat(cm.getData()).containsEntry(KEY, CHANGED_VALUE);
});
extension.delete(cr);
await().untilAsserted(() -> {
var cm = extension.get(ConfigMap.class, RESOURCE_NAME);
assertThat(cm).isNull();
});
}
{{artifactClassId}}CustomResource testResource() {
var resource = new {{artifactClassId}}CustomResource();
resource.setMetadata(new ObjectMetaBuilder()
.withName(RESOURCE_NAME)
.build());
resource.setSpec(new {{artifactClassId}}Spec());
resource.getSpec().setValue(INITIAL_VALUE);
return resource;
}
}