|
35 | 35 | import io.opentelemetry.sdk.trace.data.SpanData;
|
36 | 36 | import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
37 | 37 | import io.opentelemetry.sdk.trace.samplers.Sampler;
|
| 38 | +import okhttp3.Call; |
| 39 | +import okhttp3.Interceptor; |
| 40 | +import okhttp3.OkHttpClient; |
38 | 41 | import org.junit.jupiter.api.AfterEach;
|
39 | 42 | import org.junit.jupiter.api.BeforeAll;
|
40 | 43 | import org.junit.jupiter.api.Test;
|
41 | 44 |
|
| 45 | +import java.io.IOException; |
| 46 | +import java.util.LinkedList; |
42 | 47 | import java.util.List;
|
43 | 48 | import java.util.concurrent.CompletableFuture;
|
44 | 49 |
|
45 | 50 | import static org.junit.jupiter.api.Assertions.assertEquals;
|
| 51 | +import static org.junit.jupiter.api.Assertions.assertNotNull; |
| 52 | +import static org.mockito.Mockito.mock; |
| 53 | +import static org.mockito.Mockito.when; |
46 | 54 |
|
47 | 55 | public class OpenTelemetryTracerTest {
|
48 | 56 |
|
49 | 57 | private final String rootSpanName = "root span";
|
50 | 58 | private static OtTestExportHandler spanExporterHandler;
|
51 |
| - private OpenTelemetry openTelemetry= GlobalOpenTelemetry.get(); |
| 59 | + private OpenTelemetry openTelemetry = GlobalOpenTelemetry.get(); |
52 | 60 | private Tracer tracer = openTelemetry.getTracer("github-java-client-test");
|
53 | 61 |
|
54 | 62 | /**
|
@@ -108,6 +116,22 @@ public void testTrace_CompletionStage_Fails() throws Exception {
|
108 | 116 | assertEquals(StatusCode.UNSET, inner.getStatus().getStatusCode());
|
109 | 117 | }
|
110 | 118 |
|
| 119 | + @Test |
| 120 | + public void test_createTracedClient() throws IOException { |
| 121 | + OpenTelemetryTracer tracer = new OpenTelemetryTracer(openTelemetry); |
| 122 | + OkHttpClient.Builder mockBuilder = mock(OkHttpClient.Builder.class); |
| 123 | + OkHttpClient mockClient = mock(OkHttpClient.class); |
| 124 | + LinkedList<Interceptor> interceptors = new LinkedList<>(); |
| 125 | + when(mockClient.newBuilder()).thenReturn(mockBuilder); |
| 126 | + when(mockBuilder.build()).thenReturn(mockClient); |
| 127 | + when(mockBuilder.interceptors()).thenReturn(interceptors); |
| 128 | + when(mockBuilder.networkInterceptors()).thenReturn(interceptors); |
| 129 | + Call.Factory callFactory = tracer.createTracedClient(mockClient); |
| 130 | + assertNotNull(callFactory); |
| 131 | + assertEquals("class io.opentelemetry.instrumentation.okhttp.v3_0.TracingCallFactory", callFactory.getClass().toString()); |
| 132 | + assertEquals(3, interceptors.size()); |
| 133 | + } |
| 134 | + |
111 | 135 | private Span startRootSpan() {
|
112 | 136 | Span rootSpan = tracer.spanBuilder(rootSpanName).startSpan();
|
113 | 137 | Context context = Context.current().with(rootSpan);
|
|
0 commit comments