forked from open-telemetry/opentelemetry-java
-
Notifications
You must be signed in to change notification settings - Fork 1
/
TestClientServerTest.java
72 lines (59 loc) · 2.22 KB
/
TestClientServerTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.opentracingshim.testbed.clientserver;
import static io.opentelemetry.opentracingshim.testbed.TestUtils.finishedSpansSize;
import static org.assertj.core.api.Assertions.assertThat;
import static org.awaitility.Awaitility.await;
import static org.hamcrest.core.IsEqual.equalTo;
import io.opentelemetry.api.trace.SpanKind;
import io.opentelemetry.opentracingshim.OpenTracingShim;
import io.opentelemetry.sdk.testing.junit5.OpenTelemetryExtension;
import io.opentelemetry.sdk.trace.data.SpanData;
import io.opentracing.Tracer;
import java.time.Duration;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
class TestClientServerTest {
@RegisterExtension
static final OpenTelemetryExtension otelTesting = OpenTelemetryExtension.create();
private final Tracer tracer = OpenTracingShim.createTracerShim(otelTesting.getOpenTelemetry());
private final ArrayBlockingQueue<Message> queue = new ArrayBlockingQueue<>(10);
private Server server;
@BeforeEach
void before() {
server = new Server(queue, tracer);
server.start();
}
@AfterEach
void after() throws InterruptedException {
server.interrupt();
server.join(5_000L);
}
@Test
void test() throws Exception {
Client client = new Client(queue, tracer);
client.send(false);
verify();
}
@Test
public void testUpperCaseKeys() throws Exception {
Client client = new Client(queue, tracer);
client.send(true);
verify();
}
private void verify() {
await().atMost(Duration.ofSeconds(15)).until(finishedSpansSize(otelTesting), equalTo(2));
List<SpanData> finished = otelTesting.getSpans();
assertThat(finished).hasSize(2);
assertThat(finished.get(1).getTraceId()).isEqualTo(finished.get(0).getTraceId());
assertThat(finished.get(0).getKind()).isEqualTo(SpanKind.INTERNAL); // No semconv mapping.
assertThat(finished.get(1).getKind()).isEqualTo(SpanKind.INTERNAL);
assertThat(tracer.scopeManager().activeSpan()).isNull();
}
}