Skip to content

Commit 34d016b

Browse files
committed
unit tests
1 parent 1ab86ed commit 34d016b

File tree

3 files changed

+69
-7
lines changed

3 files changed

+69
-7
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/ExternalResourceCachingEventSource.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ private boolean acceptedByFiler(Map<String, R> cachedResourceMap,
120120

121121
var addedResources = new HashMap<>(newResourcesMap);
122122
addedResources.keySet().removeAll(cachedResourceMap.keySet());
123-
if (onAddFilter != null) {
123+
if (onAddFilter != null || genericFilter != null) {
124124
var anyAddAccepted =
125125
addedResources.values().stream().anyMatch(r -> acceptedByGenericFiler(r) &&
126126
onAddFilter.test(r));
@@ -133,7 +133,7 @@ private boolean acceptedByFiler(Map<String, R> cachedResourceMap,
133133

134134
var deletedResource = new HashMap<>(cachedResourceMap);
135135
deletedResource.keySet().removeAll(newResourcesMap.keySet());
136-
if (onDeleteFilter != null) {
136+
if (onDeleteFilter != null || genericFilter != null) {
137137
var anyDeleteAccepted =
138138
deletedResource.values().stream()
139139
.anyMatch(r -> acceptedByGenericFiler(r) && onDeleteFilter.test(r, false));
@@ -151,13 +151,13 @@ private boolean acceptedByFiler(Map<String, R> cachedResourceMap,
151151
.get(entry.getKey()).equals(entry.getValue()))
152152
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
153153

154-
if (onUpdateFilter != null) {
154+
if (onUpdateFilter != null || genericFilter != null) {
155155
var anyUpdated = possibleUpdatedResources.entrySet().stream()
156156
.anyMatch(
157157
entry -> {
158158
var newResource = newResourcesMap.get(entry.getKey());
159-
return acceptedByGenericFiler(newResourcesMap.get(entry.getKey())) &&
160-
onUpdateFilter.test(newResourcesMap.get(entry.getKey()), entry.getValue());
159+
return acceptedByGenericFiler(newResource) &&
160+
onUpdateFilter.test(newResource, entry.getValue());
161161
});
162162
if (anyUpdated) {
163163
return true;

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/ExternalResourceCachingEventSourceTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ void canFilterOnDeleteEvents() {
138138
}
139139

140140
@Test
141-
void filtersAddOnAddEvents() {
141+
void filtersAddEvents() {
142142
TestExternalCachingEventSource delFilteringEventSource = new TestExternalCachingEventSource();
143143
delFilteringEventSource.setOnAddFilter((res) -> false);
144144
setUpSource(delFilteringEventSource);
@@ -151,7 +151,7 @@ void filtersAddOnAddEvents() {
151151
}
152152

153153
@Test
154-
void filtersAddOnUpdateEvents() {
154+
void filtersUpdateEvents() {
155155
TestExternalCachingEventSource delFilteringEventSource = new TestExternalCachingEventSource();
156156
delFilteringEventSource.setOnUpdateFilter((res, res2) -> false);
157157
setUpSource(delFilteringEventSource);
@@ -178,6 +178,22 @@ void filtersImplicitDeleteEvents() {
178178
verify(eventHandler, times(1)).handleEvent(any());
179179
}
180180

181+
@Test
182+
void genericFilteringEvents() {
183+
TestExternalCachingEventSource delFilteringEventSource = new TestExternalCachingEventSource();
184+
delFilteringEventSource.setGenericFilter(res -> false);
185+
setUpSource(delFilteringEventSource);
186+
187+
source.handleResources(primaryID1(), Set.of(testResource1()));
188+
verify(eventHandler, times(0)).handleEvent(any());
189+
190+
source.handleResources(primaryID1(), Set.of(testResource1(), testResource2()));
191+
verify(eventHandler, times(0)).handleEvent(any());
192+
193+
source.handleResources(primaryID1(), Set.of(testResource2()));
194+
verify(eventHandler, times(0)).handleEvent(any());
195+
}
196+
181197
public static class TestExternalCachingEventSource
182198
extends ExternalResourceCachingEventSource<SampleExternalResource, HasMetadata> {
183199
public TestExternalCachingEventSource() {

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,52 @@ void putsResourceOnTempCacheIfNoEventRecordedWithSameResourceVersion() {
207207
verify(temporaryResourceCacheMock, times(1)).unconditionallyCacheResource(any());
208208
}
209209

210+
@Test
211+
void genericFilterForEvents() {
212+
informerEventSource.setGenericFilter(r -> false);
213+
when(temporaryResourceCacheMock.getResourceFromCache(any()))
214+
.thenReturn(Optional.empty());
215+
216+
informerEventSource.onAdd(testDeployment());
217+
informerEventSource.onUpdate(testDeployment(), testDeployment());
218+
informerEventSource.onDelete(testDeployment(), true);
219+
220+
verify(eventHandlerMock, never()).handleEvent(any());
221+
}
222+
223+
@Test
224+
void filtersOnAddEvents() {
225+
informerEventSource.setOnAddFilter(r -> false);
226+
when(temporaryResourceCacheMock.getResourceFromCache(any()))
227+
.thenReturn(Optional.empty());
228+
229+
informerEventSource.onAdd(testDeployment());
230+
231+
verify(eventHandlerMock, never()).handleEvent(any());
232+
}
233+
234+
@Test
235+
void filtersOnUpdateEvents() {
236+
informerEventSource.setOnUpdateFilter((r1, r2) -> false);
237+
when(temporaryResourceCacheMock.getResourceFromCache(any()))
238+
.thenReturn(Optional.empty());
239+
240+
informerEventSource.onUpdate(testDeployment(), testDeployment());
241+
242+
verify(eventHandlerMock, never()).handleEvent(any());
243+
}
244+
245+
@Test
246+
void filtersOnDeleteEvents() {
247+
informerEventSource.setOnDeleteFilter((r, b) -> false);
248+
when(temporaryResourceCacheMock.getResourceFromCache(any()))
249+
.thenReturn(Optional.empty());
250+
251+
informerEventSource.onDelete(testDeployment(), true);
252+
253+
verify(eventHandlerMock, never()).handleEvent(any());
254+
}
255+
210256
Deployment testDeployment() {
211257
Deployment deployment = new Deployment();
212258
deployment.setMetadata(new ObjectMeta());

0 commit comments

Comments
 (0)