Skip to content

Commit 4247e2a

Browse files
committed
fix: add status check to TimerEventSource and update tests
Signed-off-by: David Sondermann <[email protected]>
1 parent 615b409 commit 4247e2a

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.slf4j.LoggerFactory;
1111

1212
import io.fabric8.kubernetes.api.model.HasMetadata;
13+
import io.javaoperatorsdk.operator.health.Status;
1314
import io.javaoperatorsdk.operator.processing.event.Event;
1415
import io.javaoperatorsdk.operator.processing.event.ResourceID;
1516
import io.javaoperatorsdk.operator.processing.event.source.AbstractEventSource;
@@ -77,6 +78,11 @@ public void stop() {
7778
}
7879
}
7980

81+
@Override
82+
public Status getStatus() {
83+
return isRunning() ? Status.HEALTHY : Status.UNHEALTHY;
84+
}
85+
8086
@Override
8187
public Set<Void> getSecondaryResources(HasMetadata primary) {
8288
return Set.of();

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.junit.jupiter.api.Test;
1212

1313
import io.javaoperatorsdk.operator.TestUtils;
14+
import io.javaoperatorsdk.operator.health.Status;
1415
import io.javaoperatorsdk.operator.processing.event.Event;
1516
import io.javaoperatorsdk.operator.processing.event.EventHandler;
1617
import io.javaoperatorsdk.operator.processing.event.ResourceID;
@@ -41,6 +42,7 @@ public void schedulesOnce() {
4142

4243
untilAsserted(() -> assertThat(eventHandler.events).hasSize(1));
4344
untilAsserted(PERIOD * 2, 0, () -> assertThat(eventHandler.events).hasSize(1));
45+
assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
4446
}
4547

4648
@Test
@@ -51,6 +53,7 @@ public void canCancelOnce() {
5153
source.cancelOnceSchedule(resourceID);
5254

5355
untilAsserted(() -> assertThat(eventHandler.events).isEmpty());
56+
assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
5457
}
5558

5659
@Test
@@ -61,6 +64,7 @@ public void canRescheduleOnceEvent() {
6164
source.scheduleOnce(resourceID, 2 * PERIOD);
6265

6366
untilAsserted(PERIOD * 2, PERIOD, () -> assertThat(eventHandler.events).hasSize(1));
67+
assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
6468
}
6569

6670
@Test
@@ -71,23 +75,29 @@ public void deRegistersOnceEventSources() {
7175
source.onResourceDeleted(customResource);
7276

7377
untilAsserted(() -> assertThat(eventHandler.events).isEmpty());
78+
assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
7479
}
7580

7681
@Test
7782
public void eventNotRegisteredIfStopped() {
7883
var resourceID = ResourceID.fromResource(TestUtils.testCustomResource());
84+
assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
7985

8086
source.stop();
8187
assertThatExceptionOfType(IllegalStateException.class)
8288
.isThrownBy(() -> source.scheduleOnce(resourceID, PERIOD));
89+
assertThat(source.getStatus()).isEqualTo(Status.UNHEALTHY);
8390
}
8491

8592
@Test
8693
public void eventNotFiredIfStopped() {
8794
source.scheduleOnce(ResourceID.fromResource(TestUtils.testCustomResource()), PERIOD);
95+
assertThat(source.getStatus()).isEqualTo(Status.HEALTHY);
96+
8897
source.stop();
8998

9099
untilAsserted(() -> assertThat(eventHandler.events).isEmpty());
100+
assertThat(source.getStatus()).isEqualTo(Status.UNHEALTHY);
91101
}
92102

93103
private void untilAsserted(ThrowingRunnable assertion) {

0 commit comments

Comments
 (0)