6
6
import com .github .containersolutions .operator .processing .EventDispatcher ;
7
7
import com .github .containersolutions .operator .sample .TestCustomResource ;
8
8
import io .fabric8 .kubernetes .api .model .ObjectMetaBuilder ;
9
- import io .fabric8 .kubernetes .client .*;
10
- import io .fabric8 .kubernetes .client .dsl .NonNamespaceOperation ;
9
+ import io .fabric8 .kubernetes .client .CustomResource ;
10
+ import io .fabric8 .kubernetes .client .CustomResourceDoneable ;
11
+ import io .fabric8 .kubernetes .client .CustomResourceList ;
12
+ import io .fabric8 .kubernetes .client .Watcher ;
11
13
import io .fabric8 .kubernetes .client .dsl .Replaceable ;
12
- import io .fabric8 .kubernetes .client .dsl .Resource ;
13
14
import io .fabric8 .kubernetes .client .dsl .internal .CustomResourceOperationsImpl ;
14
- import io .fabric8 .kubernetes .client .dsl .internal .RawCustomResourceOperationsImpl ;
15
15
import org .junit .jupiter .api .BeforeEach ;
16
16
import org .junit .jupiter .api .Test ;
17
17
import org .mockito .ArgumentMatchers ;
@@ -27,49 +27,39 @@ class EventDispatcherTest {
27
27
private CustomResource testCustomResource ;
28
28
private EventDispatcher <CustomResource > eventDispatcher ;
29
29
private ResourceController <CustomResource > resourceController = mock (ResourceController .class );
30
- private NonNamespaceOperation <CustomResource , CustomResourceList <CustomResource >,
31
- CustomResourceDoneable <CustomResource >,
32
- Resource <CustomResource , CustomResourceDoneable <CustomResource >>>
33
- operation = mock (NonNamespaceOperation .class );
34
- private KubernetesClient k8sClient = mock (KubernetesClient .class );
35
30
private CustomResourceOperationsImpl <CustomResource , CustomResourceList <CustomResource >,
36
31
CustomResourceDoneable <CustomResource >> resourceOperation = mock (CustomResourceOperationsImpl .class );
37
32
38
- private RawCustomResourceOperationsImpl rawResourceOperations = mock (RawCustomResourceOperationsImpl .class );
39
33
@ BeforeEach
40
34
void setup () {
41
- eventDispatcher = new EventDispatcher (resourceController , resourceOperation , operation , k8sClient ,
35
+ eventDispatcher = new EventDispatcher (resourceController , resourceOperation ,
42
36
Controller .DEFAULT_FINALIZER );
43
37
44
38
testCustomResource = getResource ();
45
39
46
- when (resourceController .createOrUpdateResource (eq (testCustomResource ), any () )).thenReturn (Optional .of (testCustomResource ));
47
- when (resourceController .deleteResource (eq (testCustomResource ), any () )).thenReturn (true );
40
+ when (resourceController .createOrUpdateResource (eq (testCustomResource ))).thenReturn (Optional .of (testCustomResource ));
41
+ when (resourceController .deleteResource (eq (testCustomResource ))).thenReturn (true );
48
42
when (resourceOperation .lockResourceVersion (any ())).thenReturn (mock (Replaceable .class ));
49
-
50
- // K8s client mocking
51
- when (k8sClient .customResource (any ())).thenReturn (rawResourceOperations );
52
- when (rawResourceOperations .get (any (), any ())).thenReturn (getRawResource ());
53
43
}
54
44
55
45
@ Test
56
46
void callCreateOrUpdateOnNewResource () {
57
47
eventDispatcher .handleEvent (Watcher .Action .ADDED , testCustomResource );
58
- verify (resourceController , times (1 )).createOrUpdateResource (ArgumentMatchers .eq (testCustomResource ), any () );
48
+ verify (resourceController , times (1 )).createOrUpdateResource (ArgumentMatchers .eq (testCustomResource ));
59
49
}
60
50
61
51
@ Test
62
52
void callCreateOrUpdateOnModifiedResource () {
63
53
eventDispatcher .handleEvent (Watcher .Action .MODIFIED , testCustomResource );
64
- verify (resourceController , times (1 )).createOrUpdateResource (ArgumentMatchers .eq (testCustomResource ), any () );
54
+ verify (resourceController , times (1 )).createOrUpdateResource (ArgumentMatchers .eq (testCustomResource ));
65
55
}
66
56
67
57
@ Test
68
58
void adsDefaultFinalizerOnCreateIfNotThere () {
69
59
eventDispatcher .handleEvent (Watcher .Action .MODIFIED , testCustomResource );
70
60
verify (resourceController , times (1 ))
71
61
.createOrUpdateResource (argThat (testCustomResource ->
72
- testCustomResource .getMetadata ().getFinalizers ().contains (Controller .DEFAULT_FINALIZER )), any () );
62
+ testCustomResource .getMetadata ().getFinalizers ().contains (Controller .DEFAULT_FINALIZER )));
73
63
}
74
64
75
65
@ Test
@@ -79,7 +69,7 @@ void callsDeleteIfObjectHasFinalizerAndMarkedForDelete() {
79
69
80
70
eventDispatcher .handleEvent (Watcher .Action .MODIFIED , testCustomResource );
81
71
82
- verify (resourceController , times (1 )).deleteResource (eq (testCustomResource ), any () );
72
+ verify (resourceController , times (1 )).deleteResource (eq (testCustomResource ));
83
73
}
84
74
85
75
/**
@@ -91,7 +81,7 @@ void callDeleteOnControllerIfMarkedForDeletionButThereIsNoDefaultFinalizer() {
91
81
92
82
eventDispatcher .handleEvent (Watcher .Action .MODIFIED , testCustomResource );
93
83
94
- verify (resourceController ).deleteResource (eq (testCustomResource ), any () );
84
+ verify (resourceController ).deleteResource (eq (testCustomResource ));
95
85
}
96
86
97
87
@ Test
@@ -107,7 +97,7 @@ void removesDefaultFinalizerOnDelete() {
107
97
108
98
@ Test
109
99
void doesNotRemovesTheFinalizerIfTheDeleteMethodRemovesFalse () {
110
- when (resourceController .deleteResource (eq (testCustomResource ), any () )).thenReturn (false );
100
+ when (resourceController .deleteResource (eq (testCustomResource ))).thenReturn (false );
111
101
markForDeletion (testCustomResource );
112
102
testCustomResource .getMetadata ().getFinalizers ().add (Controller .DEFAULT_FINALIZER );
113
103
@@ -120,7 +110,7 @@ void doesNotRemovesTheFinalizerIfTheDeleteMethodRemovesFalse() {
120
110
@ Test
121
111
void doesNotUpdateTheResourceIfEmptyOptionalReturned () {
122
112
testCustomResource .getMetadata ().getFinalizers ().add (Controller .DEFAULT_FINALIZER );
123
- when (resourceController .createOrUpdateResource (eq (testCustomResource ), any () )).thenReturn (Optional .empty ());
113
+ when (resourceController .createOrUpdateResource (eq (testCustomResource ))).thenReturn (Optional .empty ());
124
114
125
115
eventDispatcher .handleEvent (Watcher .Action .MODIFIED , testCustomResource );
126
116
@@ -129,7 +119,7 @@ void doesNotUpdateTheResourceIfEmptyOptionalReturned() {
129
119
130
120
@ Test
131
121
void addsFinalizerIfNotMarkedForDeletionAndEmptyCustomResourceReturned () {
132
- when (resourceController .createOrUpdateResource (eq (testCustomResource ), any () )).thenReturn (Optional .empty ());
122
+ when (resourceController .createOrUpdateResource (eq (testCustomResource ))).thenReturn (Optional .empty ());
133
123
134
124
eventDispatcher .handleEvent (Watcher .Action .MODIFIED , testCustomResource );
135
125
@@ -140,26 +130,14 @@ void addsFinalizerIfNotMarkedForDeletionAndEmptyCustomResourceReturned() {
140
130
@ Test
141
131
void doesNotAddFinalizerIfOptionalIsReturnedButMarkedForDeletion () {
142
132
markForDeletion (testCustomResource );
143
- when (resourceController .createOrUpdateResource (eq (testCustomResource ), any () )).thenReturn (Optional .empty ());
133
+ when (resourceController .createOrUpdateResource (eq (testCustomResource ))).thenReturn (Optional .empty ());
144
134
145
135
eventDispatcher .handleEvent (Watcher .Action .MODIFIED , testCustomResource );
146
136
147
137
assertEquals (0 , testCustomResource .getMetadata ().getFinalizers ().size ());
148
138
verify (resourceOperation , never ()).lockResourceVersion (any ());
149
139
}
150
140
151
- /**
152
- * When receiving a DELETE event the resource is already gone and we did the processing already on a MODIFIED
153
- * event received when then finalizer is added. The correct action on a DELETE event is a noop.
154
- */
155
- @ Test
156
- void doesntDoAnythingOnDeleteEvent () {
157
- eventDispatcher .handleEvent (Watcher .Action .DELETED , testCustomResource );
158
-
159
- verify (k8sClient , never ()).customResource (any ());
160
- }
161
-
162
-
163
141
private void markForDeletion (CustomResource customResource ) {
164
142
customResource .getMetadata ().setDeletionTimestamp ("2019-8-10" );
165
143
}
0 commit comments