|
7 | 7 |
|
8 | 8 | import static org.assertj.core.api.Assertions.assertThat; |
9 | 9 |
|
| 10 | +import io.opentelemetry.api.baggage.Baggage; |
10 | 11 | import io.opentelemetry.api.trace.Span; |
11 | 12 | import io.opentelemetry.api.trace.SpanContext; |
12 | 13 | import io.opentelemetry.api.trace.SpanId; |
@@ -114,6 +115,37 @@ void inject_NotSampledContext() { |
114 | 115 | assertThat(carrier).containsEntry(OtTracerPropagator.SAMPLED_HEADER, "false"); |
115 | 116 | } |
116 | 117 |
|
| 118 | + @Test |
| 119 | + void inject_Baggage() { |
| 120 | + Map<String, String> carrier = new LinkedHashMap<>(); |
| 121 | + Baggage baggage = Baggage.builder().put("foo", "bar").put("key", "value").build(); |
| 122 | + propagator.inject( |
| 123 | + withSpanContext( |
| 124 | + SpanContext.create(TRACE_ID, SPAN_ID, SAMPLED_TRACE_OPTIONS, TRACE_STATE_DEFAULT), |
| 125 | + Context.current().with(baggage)), |
| 126 | + carrier, |
| 127 | + setter); |
| 128 | + assertThat(carrier).containsEntry(OtTracerPropagator.PREFIX_BAGGAGE_HEADER + "foo", "bar"); |
| 129 | + assertThat(carrier).containsEntry(OtTracerPropagator.PREFIX_BAGGAGE_HEADER + "key", "value"); |
| 130 | + } |
| 131 | + |
| 132 | + @Test |
| 133 | + void inject_Baggage_InvalidContext() { |
| 134 | + Map<String, String> carrier = new LinkedHashMap<>(); |
| 135 | + Baggage baggage = Baggage.builder().put("foo", "bar").put("key", "value").build(); |
| 136 | + propagator.inject( |
| 137 | + withSpanContext( |
| 138 | + SpanContext.create( |
| 139 | + TraceId.getInvalid(), |
| 140 | + SpanId.getInvalid(), |
| 141 | + SAMPLED_TRACE_OPTIONS, |
| 142 | + TRACE_STATE_DEFAULT), |
| 143 | + Context.current().with(baggage)), |
| 144 | + carrier, |
| 145 | + setter); |
| 146 | + assertThat(carrier).isEmpty(); |
| 147 | + } |
| 148 | + |
117 | 149 | @Test |
118 | 150 | void extract_Nothing() { |
119 | 151 | // Context remains untouched. |
@@ -246,4 +278,33 @@ void extract_emptyCarrier() { |
246 | 278 | assertThat(getSpanContext(propagator.extract(Context.current(), emptyHeaders, getter))) |
247 | 279 | .isEqualTo(SpanContext.getInvalid()); |
248 | 280 | } |
| 281 | + |
| 282 | + @Test |
| 283 | + void extract_Baggage() { |
| 284 | + Map<String, String> carrier = new LinkedHashMap<>(); |
| 285 | + carrier.put(OtTracerPropagator.TRACE_ID_HEADER, TRACE_ID); |
| 286 | + carrier.put(OtTracerPropagator.SPAN_ID_HEADER, SPAN_ID); |
| 287 | + carrier.put(OtTracerPropagator.SAMPLED_HEADER, Common.TRUE_INT); |
| 288 | + carrier.put(OtTracerPropagator.PREFIX_BAGGAGE_HEADER + "foo", "bar"); |
| 289 | + carrier.put(OtTracerPropagator.PREFIX_BAGGAGE_HEADER + "key", "value"); |
| 290 | + |
| 291 | + Context context = propagator.extract(Context.current(), carrier, getter); |
| 292 | + |
| 293 | + Baggage expectedBaggage = Baggage.builder().put("foo", "bar").put("key", "value").build(); |
| 294 | + assertThat(Baggage.fromContext(context)).isEqualTo(expectedBaggage); |
| 295 | + } |
| 296 | + |
| 297 | + @Test |
| 298 | + void extract_Baggage_InvalidContext() { |
| 299 | + Map<String, String> carrier = new LinkedHashMap<>(); |
| 300 | + carrier.put(OtTracerPropagator.TRACE_ID_HEADER, TraceId.getInvalid()); |
| 301 | + carrier.put(OtTracerPropagator.SPAN_ID_HEADER, SPAN_ID); |
| 302 | + carrier.put(OtTracerPropagator.SAMPLED_HEADER, Common.TRUE_INT); |
| 303 | + carrier.put(OtTracerPropagator.PREFIX_BAGGAGE_HEADER + "foo", "bar"); |
| 304 | + carrier.put(OtTracerPropagator.PREFIX_BAGGAGE_HEADER + "key", "value"); |
| 305 | + |
| 306 | + Context context = propagator.extract(Context.current(), carrier, getter); |
| 307 | + |
| 308 | + assertThat(Baggage.fromContext(context).isEmpty()).isTrue(); |
| 309 | + } |
249 | 310 | } |
0 commit comments