diff --git a/samples/micrometer-samples-jersey3/build.gradle b/samples/micrometer-samples-jersey3/build.gradle index b0068a6c6e..453492340f 100644 --- a/samples/micrometer-samples-jersey3/build.gradle +++ b/samples/micrometer-samples-jersey3/build.gradle @@ -23,4 +23,5 @@ dependencies { testImplementation libs.jersey3TestFrameworkJdkHttp testImplementation libs.junitJupiter testImplementation 'org.assertj:assertj-core' + testImplementation libs.awaitility } diff --git a/samples/micrometer-samples-jersey3/src/test/java/io/micrometer/samples/jersey3/Jersey3Test.java b/samples/micrometer-samples-jersey3/src/test/java/io/micrometer/samples/jersey3/Jersey3Test.java index 5ca300edfe..203cd0d07c 100644 --- a/samples/micrometer-samples-jersey3/src/test/java/io/micrometer/samples/jersey3/Jersey3Test.java +++ b/samples/micrometer-samples-jersey3/src/test/java/io/micrometer/samples/jersey3/Jersey3Test.java @@ -28,9 +28,11 @@ import org.glassfish.jersey.test.JerseyTest; import org.junit.jupiter.api.Test; +import java.time.Duration; import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; @SuppressWarnings("deprecation") class Jersey3Test extends JerseyTest { @@ -48,16 +50,18 @@ protected Application configure() { } @Test - void helloResourceIsTimed() throws InterruptedException { + void helloResourceIsTimed() { String response = target("hello/Jersey").request().get(String.class); assertThat(response).isEqualTo("Hello, Jersey"); // Jersey metrics are recorded asynchronously to the request completing - Thread.sleep(10); - Timer timer = registry.get(TIMER_METRIC_NAME) - .tags("method", "GET", "uri", "/hello/{name}", "status", "200", "exception", "None", "outcome", "SUCCESS") - .timer(); - assertThat(timer.count()).isEqualTo(1); - assertThat(timer.totalTime(TimeUnit.NANOSECONDS)).isPositive(); + await().atMost(Duration.ofSeconds(1)).untilAsserted(() -> { + Timer timer = registry.get(TIMER_METRIC_NAME) + .tags("method", "GET", "uri", "/hello/{name}", "status", "200", "exception", "None", "outcome", + "SUCCESS") + .timer(); + assertThat(timer.count()).isEqualTo(1); + assertThat(timer.totalTime(TimeUnit.NANOSECONDS)).isPositive(); + }); } @Test