22
33import io .opentelemetry .api .OpenTelemetry ;
44import io .opentelemetry .api .baggage .propagation .W3CBaggagePropagator ;
5+ import io .opentelemetry .api .common .AttributeKey ;
56import io .opentelemetry .context .propagation .ContextPropagators ;
67import io .opentelemetry .instrumentation .ratpack .v1_7 .RatpackServerTelemetry ;
78import io .opentelemetry .sdk .OpenTelemetrySdk ;
8- import io .opentelemetry .sdk .OpenTelemetrySdkBuilder ;
99import io .opentelemetry .sdk .testing .exporter .InMemorySpanExporter ;
1010import io .opentelemetry .sdk .trace .SdkTracerProvider ;
11+ import io .opentelemetry .sdk .trace .data .SpanData ;
1112import io .opentelemetry .sdk .trace .export .SimpleSpanProcessor ;
1213import org .junit .jupiter .api .AfterAll ;
1314import org .junit .jupiter .api .Test ;
15+ import ratpack .registry .Registry ;
16+ import ratpack .test .embed .EmbeddedApp ;
17+ import spock .util .concurrent .PollingConditions ;
18+
19+ import java .util .Map ;
20+ import java .util .stream .Collectors ;
21+
22+ import static org .assertj .core .api .Assertions .assertThat ;
1423
1524class RatpackServerTest {
1625
@@ -31,10 +40,24 @@ static void cleanup() {
3140 }
3241
3342 @ Test
34- void testAddSpanOnHandlers () {
43+ void testAddSpanOnHandlers () throws Exception {
44+ EmbeddedApp app = EmbeddedApp .of (
45+ spec -> {
46+ spec .registry (registry -> Registry .of (regSpec -> telemetry .configureRegistry (regSpec )));
47+ spec .handlers (chain -> chain .get ("foo" , ctx -> ctx .render ("hi-foo" )));
48+ }
49+ );
3550
51+ app .test ( httpClient -> {
52+ assertThat (httpClient .get ("foo" ).getBody ().getText ()).isEqualTo ("hi-foo" );
53+ new PollingConditions ().eventually (() -> {
54+ Map <String , SpanData > spans = spanExporter .getFinishedSpanItems ().stream ()
55+ .collect (Collectors .toMap (SpanData ::getName , span -> span ));
56+ assertThat (spans ).containsKey ("GET /foo" );
3657
37- }
3858
59+ });
60+
61+ }
3962
4063}
0 commit comments