Skip to content

Commit 7942cd4

Browse files
committed
refactor tests
1 parent d977b4a commit 7942cd4

File tree

1 file changed

+38
-31
lines changed

1 file changed

+38
-31
lines changed

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

Lines changed: 38 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.javaoperatorsdk.operator.processing.event.source.polling;
22

3+
import java.time.Duration;
34
import java.util.Collections;
45
import java.util.Optional;
56
import java.util.Set;
@@ -16,6 +17,7 @@
1617
import io.javaoperatorsdk.operator.sample.simple.TestCustomResource;
1718

1819
import static org.assertj.core.api.Assertions.assertThat;
20+
import static org.awaitility.Awaitility.await;
1921
import static org.mockito.ArgumentMatchers.any;
2022
import static org.mockito.ArgumentMatchers.eq;
2123
import static org.mockito.Mockito.atLeast;
@@ -47,45 +49,50 @@ public void setup() {
4749
}
4850

4951
@Test
50-
void pollsTheResourceAfterAwareOfIt() throws InterruptedException {
52+
void pollsTheResourceAfterAwareOfIt() {
5153
source.onResourceCreated(testCustomResource);
5254

53-
Thread.sleep(3 * PERIOD);
54-
verify(supplier, atLeast(2)).fetchResources(eq(testCustomResource));
55-
verify(eventHandler, times(1)).handleEvent(any());
55+
await().pollDelay(Duration.ofMillis(3 * PERIOD)).untilAsserted(() -> {
56+
verify(supplier, atLeast(2)).fetchResources(eq(testCustomResource));
57+
verify(supplier, atLeast(2)).fetchDelay(any(), eq(testCustomResource));
58+
verify(eventHandler, times(1)).handleEvent(any());
59+
});
5660
}
5761

5862
@Test
59-
void registeringTaskOnAPredicate() throws InterruptedException {
63+
void registeringTaskOnAPredicate() {
6064
setUpSource(new PerResourcePollingEventSource<>(supplier, resourceCache, PERIOD,
6165
testCustomResource -> testCustomResource.getMetadata().getGeneration() > 1,
6266
SampleExternalResource.class, CacheKeyMapper.singleResourceCacheKeyMapper()));
6367
source.onResourceCreated(testCustomResource);
64-
Thread.sleep(2 * PERIOD);
6568

66-
verify(supplier, times(0)).fetchResources(eq(testCustomResource));
69+
70+
await().pollDelay(Duration.ofMillis(2 * PERIOD))
71+
.untilAsserted(() -> verify(supplier, times(0)).fetchResources(eq(testCustomResource)));
72+
6773
testCustomResource.getMetadata().setGeneration(2L);
6874
source.onResourceUpdated(testCustomResource, testCustomResource);
6975

70-
Thread.sleep(2 * PERIOD);
7176

72-
verify(supplier, atLeast(1)).fetchResources(eq(testCustomResource));
77+
await().pollDelay(Duration.ofMillis(2 * PERIOD))
78+
.untilAsserted(() -> verify(supplier, atLeast(1)).fetchResources(eq(testCustomResource)));
7379
}
7480

7581
@Test
76-
void propagateEventOnDeletedResource() throws InterruptedException {
82+
void propagateEventOnDeletedResource() {
7783
source.onResourceCreated(testCustomResource);
7884
when(supplier.fetchResources(any()))
7985
.thenReturn(Set.of(SampleExternalResource.testResource1()))
8086
.thenReturn(Collections.emptySet());
8187

82-
Thread.sleep(3 * PERIOD);
83-
verify(supplier, atLeast(2)).fetchResources(eq(testCustomResource));
84-
verify(eventHandler, times(2)).handleEvent(any());
88+
await().pollDelay(Duration.ofMillis(3 * PERIOD)).untilAsserted(() -> {
89+
verify(supplier, atLeast(2)).fetchResources(eq(testCustomResource));
90+
verify(eventHandler, times(2)).handleEvent(any());
91+
});
8592
}
8693

8794
@Test
88-
void getSecondaryResourceInitiatesFetchJustForFirstTime() throws InterruptedException {
95+
void getSecondaryResourceInitiatesFetchJustForFirstTime() {
8996
source.onResourceCreated(testCustomResource);
9097
when(supplier.fetchResources(any()))
9198
.thenReturn(Set.of(SampleExternalResource.testResource1()))
@@ -104,31 +111,31 @@ void getSecondaryResourceInitiatesFetchJustForFirstTime() throws InterruptedExce
104111
verify(supplier, times(1)).fetchResources(eq(testCustomResource));
105112
verify(eventHandler, never()).handleEvent(any());
106113

107-
Thread.sleep(PERIOD * 2);
108-
109-
verify(supplier, atLeast(2)).fetchResources(eq(testCustomResource));
110-
value = source.getSecondaryResources(testCustomResource);
111-
assertThat(value).hasSize(2);
114+
await().pollDelay(Duration.ofMillis(PERIOD * 2)).untilAsserted(() -> {
115+
verify(supplier, atLeast(2)).fetchResources(eq(testCustomResource));
116+
var val = source.getSecondaryResources(testCustomResource);
117+
assertThat(val).hasSize(2);
118+
});
112119
}
113120

114121
@Test
115-
void getsValueFromCacheOrSupplier() throws InterruptedException {
122+
void getsValueFromCacheOrSupplier() {
116123
source.onResourceCreated(testCustomResource);
117124
when(supplier.fetchResources(any()))
118125
.thenReturn(Collections.emptySet())
119126
.thenReturn(Set.of(SampleExternalResource.testResource1()));
120127

121-
Thread.sleep(PERIOD / 3);
122-
123-
var value = source.getSecondaryResources(testCustomResource);
124-
verify(eventHandler, times(0)).handleEvent(any());
125-
assertThat(value).isEmpty();
126-
127-
Thread.sleep(PERIOD * 2);
128-
129-
value = source.getSecondaryResources(testCustomResource);
130-
assertThat(value).hasSize(1);
131-
verify(eventHandler, times(1)).handleEvent(any());
128+
await().pollDelay(Duration.ofMillis(PERIOD / 3)).untilAsserted(() -> {
129+
var value = source.getSecondaryResources(testCustomResource);
130+
verify(eventHandler, times(0)).handleEvent(any());
131+
assertThat(value).isEmpty();
132+
});
133+
134+
await().pollDelay(Duration.ofMillis(PERIOD * 2)).untilAsserted(() -> {
135+
var value2 = source.getSecondaryResources(testCustomResource);
136+
assertThat(value2).hasSize(1);
137+
verify(eventHandler, times(1)).handleEvent(any());
138+
});
132139
}
133140

134141
@Test

0 commit comments

Comments
 (0)