Skip to content

Commit a25ef48

Browse files
committed
additional unit test for scheduling
1 parent f4867b1 commit a25ef48

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

operator-framework/src/test/java/com/github/containersolutions/operator/EventSchedulerTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,30 @@ public void eventsAreNotExecutedConcurrentlyForSameResource() throws Interrupted
7070
"Start time of event 2 is after end time of event 1");
7171
}
7272

73+
@Test
74+
public void onlyLastEventIsScheduledIfMoreReceivedDuringAndExecution() {
75+
normalDispatcherExecution();
76+
CustomResource resource1 = sampleResource();
77+
CustomResource resource2 = sampleResource();
78+
resource2.getMetadata().setResourceVersion("2");
79+
CustomResource resource3 = sampleResource();
80+
resource3.getMetadata().setResourceVersion("3");
81+
82+
eventScheduler.eventReceived(Watcher.Action.MODIFIED, resource1);
83+
eventScheduler.eventReceived(Watcher.Action.MODIFIED, resource2);
84+
eventScheduler.eventReceived(Watcher.Action.MODIFIED, resource3);
85+
86+
waitTimeForExecution(3);
87+
log.info("Event processing details 1.: {}. 2: {}", eventProcessingList.get(0), eventProcessingList.get(1));
88+
assertThat(eventProcessingList).hasSize(2)
89+
.matches(list -> eventProcessingList.get(0).getCustomResource().getMetadata().getResourceVersion().equals("1") &&
90+
eventProcessingList.get(1).getCustomResource().getMetadata().getResourceVersion().equals("3"),
91+
"Events processed in correct order")
92+
.matches(list ->
93+
eventProcessingList.get(0).getEndTime().isBefore(eventProcessingList.get(1).startTime),
94+
"Start time of event 2 is after end time of event 1");
95+
}
96+
7397
@Test
7498
public void retriesEventsWithErrors() {
7599
doAnswer(this::exceptionInExecution)

0 commit comments

Comments
 (0)