From 066b14ea5155e1f81c75a6e43bccfe0f6cf0a944 Mon Sep 17 00:00:00 2001 From: Dmitry Aleksandrov Date: Fri, 1 Dec 2023 17:29:35 +0200 Subject: [PATCH] Fix tests Signed-off-by: Dmitry Aleksandrov --- .../telemetry/InMemorySpanExporter.java | 4 +-- .../telemetry/RestSpanHierarchyTest.java | 26 ++++++------------- .../telemetry/TestFullUrlName.java | 16 +++++------- 3 files changed, 17 insertions(+), 29 deletions(-) diff --git a/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/InMemorySpanExporter.java b/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/InMemorySpanExporter.java index 052a01aefef..ef6c3ae3d1d 100644 --- a/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/InMemorySpanExporter.java +++ b/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/InMemorySpanExporter.java @@ -36,7 +36,7 @@ @ApplicationScoped public class InMemorySpanExporter implements SpanExporter { private boolean isStopped = false; - private final List finishedSpanItems = new CopyOnWriteArrayList<>(); + private static final List finishedSpanItems = new CopyOnWriteArrayList<>(); /** * In-memory span exporter inspired by TCKs. @@ -48,7 +48,7 @@ public List getFinishedSpanItems(int spanCount) { } public void assertSpanCount(int spanCount) { - Awaitility.await().pollDelay(3, SECONDS).atMost(120, SECONDS) + Awaitility.await().pollDelay(3, SECONDS).atMost(10, SECONDS) .untilAsserted(() -> assertThat(finishedSpanItems.size(), Matchers.is(spanCount))); } diff --git a/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/RestSpanHierarchyTest.java b/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/RestSpanHierarchyTest.java index 75ef793e80d..64e202c7e51 100644 --- a/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/RestSpanHierarchyTest.java +++ b/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/RestSpanHierarchyTest.java @@ -28,6 +28,7 @@ import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.instrumentation.annotations.WithSpan; import io.opentelemetry.sdk.trace.data.SpanData; +import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.ApplicationPath; import jakarta.ws.rs.GET; @@ -48,6 +49,7 @@ * Test Span Hierarchy with Tracer Mock */ @HelidonTest +@AddBean(RestSpanHierarchyTest.SpanResource.class) @AddBean(InMemorySpanExporter.class) @AddBean(InMemorySpanExporterProvider.class) @AddConfig(key = "otel.service.name", value = "helidon-mp-telemetry") @@ -64,23 +66,15 @@ public class RestSpanHierarchyTest { @BeforeEach void setup() { - if (spanExporter != null) { - spanExporter.reset(); - } - } - - @AfterEach - void reset(){ spanExporter.reset(); } @Test void spanHierarchy() { - assertThat(webTarget.request("mixed").get(), is(Status.OK_200)); + assertThat(webTarget.path("mixed").request().get().getStatus(), is(Response.Status.OK.getStatusCode())); - List spanItems = spanExporter.getFinishedSpanItems(3); - assertThat(spanItems.size(), is(3)); + List spanItems = spanExporter.getFinishedSpanItems(4); assertThat(spanItems.get(0).getKind(), is(SERVER)); assertThat(spanItems.get(0).getName(), is("mixed_inner")); assertThat(spanItems.get(0).getAttributes().get(AttributeKey.stringKey("attribute")), is("value")); @@ -99,10 +93,10 @@ void spanHierarchy() { @Test void spanHierarchyInjected() { - assertThat(webTarget.request("mixed_injected").get(), is(Status.OK_200)); + assertThat(webTarget.path("mixed_injected").request().get().getStatus(), is(Response.Status.OK.getStatusCode())); - List spanItems = spanExporter.getFinishedSpanItems(3); - assertThat(spanItems.size(), is(3)); + List spanItems = spanExporter.getFinishedSpanItems(4); + assertThat(spanItems.size(), is(4)); assertThat(spanItems.get(0).getKind(), is(SERVER)); assertThat(spanItems.get(0).getName(), is("mixed_inner_injected")); assertThat(spanItems.get(0).getAttributes().get(AttributeKey.stringKey("attribute")), is("value")); @@ -120,6 +114,7 @@ void spanHierarchyInjected() { @Path("/") + @ApplicationScoped public static class SpanResource { @Inject @@ -155,9 +150,4 @@ public Response mixedSpanInjected() { return Response.ok().build(); } } - - @ApplicationPath("/") - public static class RestApplication extends Application { - - } } \ No newline at end of file diff --git a/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/TestFullUrlName.java b/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/TestFullUrlName.java index 5fd696251a8..44ce2eeca40 100644 --- a/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/TestFullUrlName.java +++ b/microprofile/telemetry/src/test/java/io/helidon/microprofile/telemetry/TestFullUrlName.java @@ -26,6 +26,7 @@ import io.helidon.microprofile.testing.junit5.HelidonTest; import io.opentelemetry.sdk.trace.data.SpanData; +import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.ApplicationPath; import jakarta.ws.rs.GET; @@ -43,12 +44,13 @@ * Test Span Hierarchy with Tracer Mock */ @HelidonTest +@AddBean(TestFullUrlName.SpanResource.class) @AddBean(InMemorySpanExporter.class) @AddBean(InMemorySpanExporterProvider.class) @AddExtension(TelemetryCdiExtension.class) @AddConfig(key = "otel.service.name", value = "helidon-mp-telemetry") @AddConfig(key = "otel.sdk.disabled", value = "false") -@AddConfig(key = "telemetry.span.full.url", value = "false") +@AddConfig(key = "telemetry.span.full.url", value = "true") @AddConfig(key = "otel.traces.exporter", value = "in-memory") public class TestFullUrlName { @@ -71,15 +73,16 @@ void setup() { @Test void spanNaming() { - assertThat(webTarget.request("/named").get(), is(Status.OK_200)); + assertThat(webTarget.path("named").request().get().getStatus(), is(Response.Status.OK.getStatusCode())); - List spanItems = spanExporter.getFinishedSpanItems(1); - assertThat(spanItems.size(), is(1)); + List spanItems = spanExporter.getFinishedSpanItems(2); + assertThat(spanItems.size(), is(2)); assertThat(spanItems.get(0).getName(), is("http://localhost:" + webTarget.getUri().getPort() + "/named")); } @Path("/") + @ApplicationScoped public static class SpanResource { @GET @@ -89,9 +92,4 @@ public Response mixedSpan() { } } - - @ApplicationPath("/") - public static class RestApplication extends Application { - - } } \ No newline at end of file