Change testbed to use the junit5 extension (#1988)
Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
parent
37cce8dbca
commit
faf6b9f15e
|
|
@ -8,8 +8,8 @@ description = 'OpenTelemetry SDK Testbed'
|
||||||
ext.moduleName = 'io.opentelemetry.sdk.extension.trace.testbed'
|
ext.moduleName = 'io.opentelemetry.sdk.extension.trace.testbed'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation project(':opentelemetry-api'),
|
testImplementation project(':opentelemetry-api'),
|
||||||
project(':opentelemetry-sdk'),
|
project(':opentelemetry-sdk'),
|
||||||
project(':opentelemetry-exporter-inmemory'),
|
project(':opentelemetry-sdk-testing'),
|
||||||
libraries.guava
|
libraries.guava
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.common.AttributeKey;
|
import io.opentelemetry.api.common.AttributeKey;
|
||||||
import io.opentelemetry.api.trace.Span.Kind;
|
import io.opentelemetry.api.trace.Span.Kind;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemorySpanExporter;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
@ -22,9 +22,11 @@ import javax.annotation.Nullable;
|
||||||
public final class TestUtils {
|
public final class TestUtils {
|
||||||
private TestUtils() {}
|
private TestUtils() {}
|
||||||
|
|
||||||
/** Returns the number of finished {@code Span}s in the specified {@code InMemorySpanExporter}. */
|
/**
|
||||||
public static Callable<Integer> finishedSpansSize(final InMemorySpanExporter tracer) {
|
* Returns the number of finished {@code Span}s in the specified {@code OpenTelemetryExtension}.
|
||||||
return () -> tracer.getFinishedSpanItems().size();
|
*/
|
||||||
|
public static Callable<Integer> finishedSpansSize(final OpenTelemetryExtension otelTesting) {
|
||||||
|
return () -> otelTesting.getSpans().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns a {@code List} with the {@code Span} matching the specified attribute. */
|
/** Returns a {@code List} with the {@code Span} matching the specified attribute. */
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.extensions.trace.testbed.activespanreplacement;
|
package io.opentelemetry.sdk.extensions.trace.testbed.activespanreplacement;
|
||||||
|
|
||||||
import static io.opentelemetry.sdk.extensions.trace.testbed.TestUtils.finishedSpansSize;
|
|
||||||
import static io.opentelemetry.sdk.extensions.trace.testbed.TestUtils.sleep;
|
import static io.opentelemetry.sdk.extensions.trace.testbed.TestUtils.sleep;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.awaitility.Awaitility.await;
|
import static org.awaitility.Awaitility.await;
|
||||||
|
|
@ -15,22 +14,24 @@ import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.SpanId;
|
import io.opentelemetry.api.trace.SpanId;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
@SuppressWarnings("FutureReturnValueIgnored")
|
@SuppressWarnings("FutureReturnValueIgnored")
|
||||||
class ActiveSpanReplacementTest {
|
class ActiveSpanReplacementTest {
|
||||||
|
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(ActiveSpanReplacementTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(ActiveSpanReplacementTest.class.getName());
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -44,9 +45,9 @@ class ActiveSpanReplacementTest {
|
||||||
|
|
||||||
await()
|
await()
|
||||||
.atMost(15, TimeUnit.SECONDS)
|
.atMost(15, TimeUnit.SECONDS)
|
||||||
.until(finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(3));
|
.until(TestUtils.finishedSpansSize(otelTesting), equalTo(3));
|
||||||
|
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertThat(spans).hasSize(3);
|
assertThat(spans).hasSize(3);
|
||||||
assertThat(spans.get(0).getName()).isEqualTo("initial"); // Isolated task
|
assertThat(spans.get(0).getName()).isEqualTo("initial"); // Isolated task
|
||||||
assertThat(spans.get(1).getName()).isEqualTo("subtask");
|
assertThat(spans.get(1).getName()).isEqualTo("subtask");
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,8 @@ import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Span.Kind;
|
import io.opentelemetry.api.trace.Span.Kind;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
@ -21,6 +20,7 @@ import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.Phaser;
|
import java.util.concurrent.Phaser;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* These tests are intended to simulate the kind of async models that are common in java async
|
* These tests are intended to simulate the kind of async models that are common in java async
|
||||||
|
|
@ -31,10 +31,11 @@ import org.junit.jupiter.api.Test;
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("FutureReturnValueIgnored")
|
@SuppressWarnings("FutureReturnValueIgnored")
|
||||||
class ActorPropagationTest {
|
class ActorPropagationTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(ActorPropagationTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(ActorPropagationTest.class.getName());
|
||||||
private Phaser phaser;
|
private Phaser phaser;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
@ -56,17 +57,14 @@ class ActorPropagationTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
phaser.arriveAndAwaitAdvance(); // child tracer started
|
phaser.arriveAndAwaitAdvance(); // child tracer started
|
||||||
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems()).hasSize(1);
|
assertThat(otelTesting.getSpans()).hasSize(1);
|
||||||
phaser.arriveAndAwaitAdvance(); // continue...
|
phaser.arriveAndAwaitAdvance(); // continue...
|
||||||
phaser.arriveAndAwaitAdvance(); // child tracer finished
|
phaser.arriveAndAwaitAdvance(); // child tracer finished
|
||||||
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems()).hasSize(3);
|
assertThat(otelTesting.getSpans()).hasSize(3);
|
||||||
assertThat(
|
assertThat(TestUtils.getByKind(otelTesting.getSpans(), Span.Kind.CONSUMER)).hasSize(2);
|
||||||
TestUtils.getByKind(
|
|
||||||
inMemoryTracing.getSpanExporter().getFinishedSpanItems(), Span.Kind.CONSUMER))
|
|
||||||
.hasSize(2);
|
|
||||||
phaser.arriveAndDeregister(); // continue...
|
phaser.arriveAndDeregister(); // continue...
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertThat(finished.size()).isEqualTo(3);
|
assertThat(finished.size()).isEqualTo(3);
|
||||||
assertThat(finished.get(0).getTraceId()).isEqualTo(finished.get(1).getTraceId());
|
assertThat(finished.get(0).getTraceId()).isEqualTo(finished.get(1).getTraceId());
|
||||||
assertThat(TestUtils.getByKind(finished, Span.Kind.CONSUMER)).hasSize(2);
|
assertThat(TestUtils.getByKind(finished, Span.Kind.CONSUMER)).hasSize(2);
|
||||||
|
|
@ -92,17 +90,14 @@ class ActorPropagationTest {
|
||||||
span.end();
|
span.end();
|
||||||
}
|
}
|
||||||
phaser.arriveAndAwaitAdvance(); // child tracer started
|
phaser.arriveAndAwaitAdvance(); // child tracer started
|
||||||
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(1);
|
assertThat(otelTesting.getSpans().size()).isEqualTo(1);
|
||||||
phaser.arriveAndAwaitAdvance(); // continue...
|
phaser.arriveAndAwaitAdvance(); // continue...
|
||||||
phaser.arriveAndAwaitAdvance(); // child tracer finished
|
phaser.arriveAndAwaitAdvance(); // child tracer finished
|
||||||
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(3);
|
assertThat(otelTesting.getSpans().size()).isEqualTo(3);
|
||||||
assertThat(
|
assertThat(TestUtils.getByKind(otelTesting.getSpans(), Span.Kind.CONSUMER)).hasSize(2);
|
||||||
TestUtils.getByKind(
|
|
||||||
inMemoryTracing.getSpanExporter().getFinishedSpanItems(), Span.Kind.CONSUMER))
|
|
||||||
.hasSize(2);
|
|
||||||
phaser.arriveAndDeregister(); // continue...
|
phaser.arriveAndDeregister(); // continue...
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
String message1 = future1.get(); // This really should be a non-blocking callback...
|
String message1 = future1.get(); // This really should be a non-blocking callback...
|
||||||
String message2 = future2.get(); // This really should be a non-blocking callback...
|
String message2 = future2.get(); // This really should be a non-blocking callback...
|
||||||
assertThat(message1).isEqualTo("received my message 1");
|
assertThat(message1).isEqualTo("received my message 1");
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Span.Kind;
|
import io.opentelemetry.api.trace.Span.Kind;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ArrayBlockingQueue;
|
import java.util.concurrent.ArrayBlockingQueue;
|
||||||
|
|
@ -23,13 +22,15 @@ import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
class TestClientServerTest {
|
class TestClientServerTest {
|
||||||
|
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(TestClientServerTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(TestClientServerTest.class.getName());
|
||||||
private final ArrayBlockingQueue<Message> queue = new ArrayBlockingQueue<>(10);
|
private final ArrayBlockingQueue<Message> queue = new ArrayBlockingQueue<>(10);
|
||||||
private Server server;
|
private Server server;
|
||||||
|
|
||||||
|
|
@ -52,9 +53,9 @@ class TestClientServerTest {
|
||||||
|
|
||||||
await()
|
await()
|
||||||
.atMost(15, TimeUnit.SECONDS)
|
.atMost(15, TimeUnit.SECONDS)
|
||||||
.until(TestUtils.finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(2));
|
.until(TestUtils.finishedSpansSize(otelTesting), equalTo(2));
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertEquals(2, finished.size());
|
assertEquals(2, finished.size());
|
||||||
|
|
||||||
finished = TestUtils.sortByStartTime(finished);
|
finished = TestUtils.sortByStartTime(finished);
|
||||||
|
|
|
||||||
|
|
@ -12,15 +12,14 @@ import io.opentelemetry.api.trace.SpanId;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* There is only one instance of 'RequestHandler' per 'Client'. Methods of 'RequestHandler' are
|
* There is only one instance of 'RequestHandler' per 'Client'. Methods of 'RequestHandler' are
|
||||||
|
|
@ -29,16 +28,13 @@ import org.junit.jupiter.api.Test;
|
||||||
*/
|
*/
|
||||||
class HandlerTest {
|
class HandlerTest {
|
||||||
|
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(HandlerTest.class.getName());
|
|
||||||
private final Client client = new Client(new RequestHandler(tracer));
|
|
||||||
|
|
||||||
@BeforeEach
|
private final Tracer tracer =
|
||||||
void before() {
|
otelTesting.getOpenTelemetry().getTracer(HandlerTest.class.getName());
|
||||||
inMemoryTracing.getSpanExporter().reset();
|
|
||||||
}
|
private final Client client = new Client(new RequestHandler(tracer));
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void two_requests() throws Exception {
|
void two_requests() throws Exception {
|
||||||
|
|
@ -48,7 +44,7 @@ class HandlerTest {
|
||||||
assertThat(responseFuture.get(15, TimeUnit.SECONDS)).isEqualTo("message:response");
|
assertThat(responseFuture.get(15, TimeUnit.SECONDS)).isEqualTo("message:response");
|
||||||
assertThat(responseFuture2.get(15, TimeUnit.SECONDS)).isEqualTo("message2:response");
|
assertThat(responseFuture2.get(15, TimeUnit.SECONDS)).isEqualTo("message2:response");
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertThat(finished).hasSize(2);
|
assertThat(finished).hasSize(2);
|
||||||
|
|
||||||
for (SpanData spanProto : finished) {
|
for (SpanData spanProto : finished) {
|
||||||
|
|
@ -73,7 +69,7 @@ class HandlerTest {
|
||||||
parentSpan.end();
|
parentSpan.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertThat(finished).hasSize(2);
|
assertThat(finished).hasSize(2);
|
||||||
|
|
||||||
SpanData child = TestUtils.getOneByName(finished, RequestHandler.OPERATION_NAME);
|
SpanData child = TestUtils.getOneByName(finished, RequestHandler.OPERATION_NAME);
|
||||||
|
|
@ -108,7 +104,7 @@ class HandlerTest {
|
||||||
String response = client.send("wrong_parent").get(15, TimeUnit.SECONDS);
|
String response = client.send("wrong_parent").get(15, TimeUnit.SECONDS);
|
||||||
assertThat(response).isEqualTo("wrong_parent:response");
|
assertThat(response).isEqualTo("wrong_parent:response");
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertThat(finished).hasSize(3);
|
assertThat(finished).hasSize(3);
|
||||||
|
|
||||||
finished = TestUtils.sortByStartTime(finished);
|
finished = TestUtils.sortByStartTime(finished);
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,8 @@ import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.StatusCode;
|
import io.opentelemetry.api.trace.StatusCode;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData.Event;
|
import io.opentelemetry.sdk.trace.data.SpanData.Event;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -24,14 +23,16 @@ import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
@SuppressWarnings("FutureReturnValueIgnored")
|
@SuppressWarnings("FutureReturnValueIgnored")
|
||||||
public final class ErrorReportingTest {
|
public final class ErrorReportingTest {
|
||||||
|
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(ErrorReportingTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(ErrorReportingTest.class.getName());
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
/* Very simple error handling **/
|
/* Very simple error handling **/
|
||||||
|
|
@ -48,7 +49,7 @@ public final class ErrorReportingTest {
|
||||||
|
|
||||||
assertThat(Span.current()).isSameAs(Span.getInvalid());
|
assertThat(Span.current()).isSameAs(Span.getInvalid());
|
||||||
|
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertThat(spans).hasSize(1);
|
assertThat(spans).hasSize(1);
|
||||||
assertThat(spans.get(0).getStatus().getCanonicalCode()).isEqualTo(StatusCode.ERROR);
|
assertThat(spans.get(0).getStatus().getCanonicalCode()).isEqualTo(StatusCode.ERROR);
|
||||||
}
|
}
|
||||||
|
|
@ -68,11 +69,9 @@ public final class ErrorReportingTest {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
await()
|
await().atMost(5, TimeUnit.SECONDS).until(TestUtils.finishedSpansSize(otelTesting), equalTo(1));
|
||||||
.atMost(5, TimeUnit.SECONDS)
|
|
||||||
.until(TestUtils.finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(1));
|
|
||||||
|
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertThat(spans).hasSize(1);
|
assertThat(spans).hasSize(1);
|
||||||
assertThat(spans.get(0).getStatus().getCanonicalCode()).isEqualTo(StatusCode.ERROR);
|
assertThat(spans.get(0).getStatus().getCanonicalCode()).isEqualTo(StatusCode.ERROR);
|
||||||
}
|
}
|
||||||
|
|
@ -99,7 +98,7 @@ public final class ErrorReportingTest {
|
||||||
|
|
||||||
assertThat(Span.current()).isSameAs(Span.getInvalid());
|
assertThat(Span.current()).isSameAs(Span.getInvalid());
|
||||||
|
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertThat(spans).hasSize(1);
|
assertThat(spans).hasSize(1);
|
||||||
assertThat(spans.get(0).getStatus().getCanonicalCode()).isEqualTo(StatusCode.ERROR);
|
assertThat(spans.get(0).getStatus().getCanonicalCode()).isEqualTo(StatusCode.ERROR);
|
||||||
|
|
||||||
|
|
@ -129,11 +128,9 @@ public final class ErrorReportingTest {
|
||||||
tracer));
|
tracer));
|
||||||
}
|
}
|
||||||
|
|
||||||
await()
|
await().atMost(5, TimeUnit.SECONDS).until(TestUtils.finishedSpansSize(otelTesting), equalTo(1));
|
||||||
.atMost(5, TimeUnit.SECONDS)
|
|
||||||
.until(TestUtils.finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(1));
|
|
||||||
|
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertEquals(spans.size(), 1);
|
assertEquals(spans.size(), 1);
|
||||||
assertEquals(spans.get(0).getStatus().getCanonicalCode(), StatusCode.ERROR);
|
assertEquals(spans.get(0).getStatus().getCanonicalCode(), StatusCode.ERROR);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,22 +10,23 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
@SuppressWarnings("FutureReturnValueIgnored")
|
@SuppressWarnings("FutureReturnValueIgnored")
|
||||||
public final class LateSpanFinishTest {
|
public final class LateSpanFinishTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(LateSpanFinishTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(LateSpanFinishTest.class.getName());
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -42,7 +43,7 @@ public final class LateSpanFinishTest {
|
||||||
parentSpan.end();
|
parentSpan.end();
|
||||||
|
|
||||||
// Children finish order is not guaranteed, but parent should finish *last*.
|
// Children finish order is not guaranteed, but parent should finish *last*.
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertThat(spans).hasSize(3);
|
assertThat(spans).hasSize(3);
|
||||||
assertThat(spans.get(0).getName()).startsWith("task");
|
assertThat(spans.get(0).getName()).startsWith("task");
|
||||||
assertThat(spans.get(1).getName()).startsWith("task");
|
assertThat(spans.get(1).getName()).startsWith("task");
|
||||||
|
|
|
||||||
|
|
@ -10,18 +10,19 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Span.Kind;
|
import io.opentelemetry.api.trace.Span.Kind;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
/** Each request has own instance of ResponseListener. */
|
/** Each request has own instance of ResponseListener. */
|
||||||
class ListenerTest {
|
class ListenerTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(ListenerTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(ListenerTest.class.getName());
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() throws Exception {
|
void test() throws Exception {
|
||||||
|
|
@ -29,7 +30,7 @@ class ListenerTest {
|
||||||
Object response = client.send("message").get();
|
Object response = client.send("message").get();
|
||||||
assertThat(response).isEqualTo("message:response");
|
assertThat(response).isEqualTo("message:response");
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertThat(finished).hasSize(1);
|
assertThat(finished).hasSize(1);
|
||||||
assertThat(finished.get(0).getKind()).isEqualTo(Kind.CLIENT);
|
assertThat(finished.get(0).getKind()).isEqualTo(Kind.CLIENT);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,14 @@ import static org.hamcrest.core.IsEqual.equalTo;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CountDownLatch;
|
import java.util.concurrent.CountDownLatch;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* These tests are intended to simulate a task with independent, asynchronous callbacks.
|
* These tests are intended to simulate a task with independent, asynchronous callbacks.
|
||||||
|
|
@ -29,10 +29,11 @@ import org.junit.jupiter.api.Test;
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("FutureReturnValueIgnored")
|
@SuppressWarnings("FutureReturnValueIgnored")
|
||||||
class MultipleCallbacksTest {
|
class MultipleCallbacksTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(MultipleCallbacksTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(MultipleCallbacksTest.class.getName());
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() {
|
void test() {
|
||||||
|
|
@ -51,9 +52,9 @@ class MultipleCallbacksTest {
|
||||||
|
|
||||||
await()
|
await()
|
||||||
.atMost(15, TimeUnit.SECONDS)
|
.atMost(15, TimeUnit.SECONDS)
|
||||||
.until(TestUtils.finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(4));
|
.until(TestUtils.finishedSpansSize(otelTesting), equalTo(4));
|
||||||
|
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertThat(spans).hasSize(4);
|
assertThat(spans).hasSize(4);
|
||||||
assertThat(spans.get(0).getName()).isEqualTo("parent");
|
assertThat(spans.get(0).getName()).isEqualTo("parent");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,23 +14,23 @@ import io.opentelemetry.api.common.ReadableAttributes;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
@SuppressWarnings("FutureReturnValueIgnored")
|
@SuppressWarnings("FutureReturnValueIgnored")
|
||||||
public final class NestedCallbacksTest {
|
public final class NestedCallbacksTest {
|
||||||
|
@RegisterExtension
|
||||||
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
|
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
private final Tracer tracer =
|
||||||
private final InMemoryTracing inMemoryTracing =
|
otelTesting.getOpenTelemetry().getTracer(NestedCallbacksTest.class.getName());
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(NestedCallbacksTest.class.getName());
|
|
||||||
private final ExecutorService executor = Executors.newCachedThreadPool();
|
private final ExecutorService executor = Executors.newCachedThreadPool();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -41,9 +41,9 @@ public final class NestedCallbacksTest {
|
||||||
|
|
||||||
await()
|
await()
|
||||||
.atMost(15, TimeUnit.SECONDS)
|
.atMost(15, TimeUnit.SECONDS)
|
||||||
.until(TestUtils.finishedSpansSize(inMemoryTracing.getSpanExporter()), equalTo(1));
|
.until(TestUtils.finishedSpansSize(otelTesting), equalTo(1));
|
||||||
|
|
||||||
List<SpanData> spans = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> spans = otelTesting.getSpans();
|
||||||
assertThat(spans).hasSize(1);
|
assertThat(spans).hasSize(1);
|
||||||
assertThat(spans.get(0).getName()).isEqualTo("one");
|
assertThat(spans.get(0).getName()).isEqualTo("one");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,15 +13,16 @@ import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.SpanId;
|
import io.opentelemetry.api.trace.SpanId;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Scope;
|
import io.opentelemetry.context.Scope;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
|
||||||
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
import io.opentelemetry.sdk.extensions.trace.testbed.TestUtils;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.extensions.trace.testbed.nestedcallbacks.NestedCallbacksTest;
|
||||||
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Phaser;
|
import java.util.concurrent.Phaser;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* These tests are intended to simulate the kind of async models that are common in java async
|
* These tests are intended to simulate the kind of async models that are common in java async
|
||||||
|
|
@ -31,10 +32,11 @@ import org.junit.jupiter.api.Test;
|
||||||
* execution for the tests without sleeps.
|
* execution for the tests without sleeps.
|
||||||
*/
|
*/
|
||||||
class PromisePropagationTest {
|
class PromisePropagationTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(PromisePropagationTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(NestedCallbacksTest.class.getName());
|
||||||
private Phaser phaser;
|
private Phaser phaser;
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
|
|
@ -77,7 +79,7 @@ class PromisePropagationTest {
|
||||||
phaser.arriveAndAwaitAdvance(); // result set
|
phaser.arriveAndAwaitAdvance(); // result set
|
||||||
});
|
});
|
||||||
|
|
||||||
assertThat(inMemoryTracing.getSpanExporter().getFinishedSpanItems().size()).isEqualTo(0);
|
assertThat(otelTesting.getSpans().size()).isEqualTo(0);
|
||||||
successPromise.success("success!");
|
successPromise.success("success!");
|
||||||
errorPromise.error(new Exception("some error."));
|
errorPromise.error(new Exception("some error."));
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -91,7 +93,7 @@ class PromisePropagationTest {
|
||||||
|
|
||||||
phaser.arriveAndAwaitAdvance(); // wait for traces to be reported
|
phaser.arriveAndAwaitAdvance(); // wait for traces to be reported
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertThat(finished.size()).isEqualTo(4);
|
assertThat(finished.size()).isEqualTo(4);
|
||||||
|
|
||||||
AttributeKey<String> component = stringKey("component");
|
AttributeKey<String> component = stringKey("component");
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,13 @@ package io.opentelemetry.sdk.extensions.trace.testbed.statelesscommonrequesthand
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* There is only one instance of 'RequestHandler' per 'Client'. Methods of 'RequestHandler' are
|
* There is only one instance of 'RequestHandler' per 'Client'. Methods of 'RequestHandler' are
|
||||||
|
|
@ -23,16 +22,12 @@ import org.junit.jupiter.api.Test;
|
||||||
*/
|
*/
|
||||||
public final class HandlerTest {
|
public final class HandlerTest {
|
||||||
|
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(HandlerTest.class.getName());
|
|
||||||
private final Client client = new Client(new RequestHandler(tracer));
|
|
||||||
|
|
||||||
@BeforeEach
|
private final Tracer tracer =
|
||||||
void before() {
|
otelTesting.getOpenTelemetry().getTracer(HandlerTest.class.getName());
|
||||||
inMemoryTracing.getSpanExporter().reset();
|
private final Client client = new Client(new RequestHandler(tracer));
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test_requests() throws Exception {
|
void test_requests() throws Exception {
|
||||||
|
|
@ -44,7 +39,7 @@ public final class HandlerTest {
|
||||||
assertEquals("message2:response", responseFuture2.get(5, TimeUnit.SECONDS));
|
assertEquals("message2:response", responseFuture2.get(5, TimeUnit.SECONDS));
|
||||||
assertEquals("message:response", responseFuture.get(5, TimeUnit.SECONDS));
|
assertEquals("message:response", responseFuture.get(5, TimeUnit.SECONDS));
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertEquals(3, finished.size());
|
assertEquals(3, finished.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,22 +9,24 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.trace.SpanId;
|
import io.opentelemetry.api.trace.SpanId;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.exporters.inmemory.InMemoryTracing;
|
import io.opentelemetry.sdk.extensions.trace.testbed.statelesscommonrequesthandler.HandlerTest;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
|
||||||
import io.opentelemetry.sdk.trace.data.SpanData;
|
import io.opentelemetry.sdk.trace.data.SpanData;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.RegisterExtension;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* These tests are intended to simulate the kind of async models that are common in java async
|
* These tests are intended to simulate the kind of async models that are common in java async
|
||||||
* frameworks.
|
* frameworks.
|
||||||
*/
|
*/
|
||||||
class SuspendResumePropagationTest {
|
class SuspendResumePropagationTest {
|
||||||
private final TracerSdkProvider sdk = TracerSdkProvider.builder().build();
|
@RegisterExtension
|
||||||
private final InMemoryTracing inMemoryTracing =
|
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
|
||||||
InMemoryTracing.builder().setTracerSdkManagement(sdk).build();
|
|
||||||
private final Tracer tracer = sdk.get(SuspendResumePropagationTest.class.getName());
|
private final Tracer tracer =
|
||||||
|
otelTesting.getOpenTelemetry().getTracer(HandlerTest.class.getName());
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void before() {}
|
void before() {}
|
||||||
|
|
@ -45,7 +47,7 @@ class SuspendResumePropagationTest {
|
||||||
job1.done();
|
job1.done();
|
||||||
job2.done();
|
job2.done();
|
||||||
|
|
||||||
List<SpanData> finished = inMemoryTracing.getSpanExporter().getFinishedSpanItems();
|
List<SpanData> finished = otelTesting.getSpans();
|
||||||
assertThat(finished.size()).isEqualTo(2);
|
assertThat(finished.size()).isEqualTo(2);
|
||||||
|
|
||||||
assertThat(finished.get(0).getName()).isEqualTo("job 1");
|
assertThat(finished.get(0).getName()).isEqualTo("job 1");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue