Skip to content

Commit 697d280

Browse files
committed
Improve test coverage
1 parent 7e488a0 commit 697d280

2 files changed

Lines changed: 26 additions & 19 deletions

File tree

sdk/metrics/src/main/java/io/opentelemetry/sdk/metrics/export/PeriodicMetricReader.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,19 @@ public MemoryMode getMemoryMode() {
8282
@Override
8383
public CompletableResultCode forceFlush() {
8484
CompletableResultCode result = new CompletableResultCode();
85-
CompletableResultCode flushResult = scheduled.doRun();
86-
flushResult.whenComplete(
87-
() ->
88-
exporter
89-
.flush()
90-
.whenComplete(
91-
() -> {
92-
if (!flushResult.isSuccess()) {
93-
result.fail();
94-
} else {
95-
result.succeed();
96-
}
97-
}));
85+
CompletableResultCode doRunResult = scheduled.doRun();
86+
doRunResult.whenComplete(
87+
() -> {
88+
CompletableResultCode flushResult = exporter.flush();
89+
flushResult.whenComplete(
90+
() -> {
91+
if (doRunResult.isSuccess() && flushResult.isSuccess()) {
92+
result.succeed();
93+
} else {
94+
result.fail();
95+
}
96+
});
97+
});
9898
return result;
9999
}
100100

sdk/metrics/src/test/java/io/opentelemetry/sdk/metrics/export/PeriodicMetricReaderTest.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -157,23 +157,30 @@ void flush() throws Exception {
157157
@Test
158158
void forceflush_callsFlush() {
159159
MetricExporter metricExporter = mock(MetricExporter.class);
160-
when(metricExporter.export(any())).thenReturn(CompletableResultCode.ofSuccess());
161-
when(metricExporter.flush()).thenReturn(CompletableResultCode.ofSuccess());
160+
when(metricExporter.export(any()))
161+
.thenReturn(CompletableResultCode.ofSuccess())
162+
.thenReturn(CompletableResultCode.ofSuccess())
163+
.thenThrow(new RuntimeException("Export Failed!"));
164+
when(metricExporter.flush())
165+
.thenReturn(CompletableResultCode.ofSuccess())
166+
.thenReturn(CompletableResultCode.ofFailure())
167+
.thenReturn(CompletableResultCode.ofSuccess());
162168
when(metricExporter.shutdown()).thenReturn(CompletableResultCode.ofSuccess());
163169

164170
PeriodicMetricReader reader =
165171
PeriodicMetricReader.builder(metricExporter)
166172
.setInterval(Duration.ofNanos(Long.MAX_VALUE))
167173
.build();
168174

169-
reader.register(collectionRegistration);
170-
assertThat(reader.forceFlush().join(10, TimeUnit.SECONDS).isSuccess()).isTrue();
171-
172175
try {
173-
verify(metricExporter).flush();
176+
reader.register(collectionRegistration);
177+
assertThat(reader.forceFlush().join(10, TimeUnit.SECONDS).isSuccess()).isTrue();
178+
assertThat(reader.forceFlush().join(10, TimeUnit.SECONDS).isSuccess()).isFalse();
179+
assertThat(reader.forceFlush().join(10, TimeUnit.SECONDS).isSuccess()).isFalse();
174180
} finally {
175181
reader.shutdown();
176182
}
183+
verify(metricExporter, times(3)).flush();
177184
}
178185

179186
@Test

0 commit comments

Comments
 (0)