Skip to content

Commit 3527250

Browse files
committed
event list fix, unit test
1 parent 476d512 commit 3527250

File tree

2 files changed

+32
-13
lines changed
  • operator-framework/src

2 files changed

+32
-13
lines changed

operator-framework/src/main/java/io/javaoperatorsdk/operator/processing/event/EventList.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,12 @@ public List<Event> getList() {
1616
}
1717

1818
public <T extends Event> Optional<T> getLatestOfType(Class<T> eventType) {
19-
ListIterator<Event> iterator = eventList.listIterator(eventList.size() - 1);
20-
while (iterator.hasPrevious()) {
21-
Event event = iterator.previous();
19+
for (int i = eventList.size() - 1; i >= 0; i--){
20+
Event event = eventList.get(i);
2221
if (event.getClass().isAssignableFrom(eventType)) {
23-
return Optional.of((T)event);
22+
return (Optional<T>) Optional.of(event);
2423
}
2524
}
26-
27-
List<Event> eventsOfType = eventList.stream()
28-
.filter(event -> event.getClass().isAssignableFrom(eventType))
29-
.collect(Collectors.toList());
30-
if (eventsOfType.size() > 0) {
31-
return Optional.of((T) eventsOfType.get(eventsOfType.size() - 1));
32-
} else {
33-
return Optional.empty();
34-
}
25+
return Optional.empty();
3526
}
3627
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package io.javaoperatorsdk.operator.processing.event;
2+
3+
import io.javaoperatorsdk.operator.processing.event.internal.CustomResourceEvent;
4+
import io.javaoperatorsdk.operator.processing.event.internal.TimerEvent;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.util.ArrayList;
8+
import java.util.Arrays;
9+
import java.util.List;
10+
11+
import static com.google.common.truth.Truth.assertThat;
12+
import static org.junit.jupiter.api.Assertions.*;
13+
import static org.mockito.Mockito.mock;
14+
15+
class EventListTest {
16+
17+
@Test
18+
public void returnsLatestOfEventType() {
19+
TimerEvent event2 = new TimerEvent("1", null);
20+
EventList eventList = new EventList(Arrays.asList(
21+
mock(Event.class),
22+
new TimerEvent("2", null),
23+
event2,
24+
mock(Event.class)));
25+
26+
assertThat(eventList.getLatestOfType(TimerEvent.class).get()).isSameInstanceAs(event2);
27+
}
28+
}

0 commit comments

Comments
 (0)