|
27 | 27 | import io.micrometer.tracing.Tracer;
|
28 | 28 | import io.micrometer.tracing.handler.DefaultTracingObservationHandler;
|
29 | 29 | import io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler;
|
30 |
| -import org.junit.jupiter.api.Disabled; |
31 | 30 | import org.junit.jupiter.api.Test;
|
32 | 31 | import org.slf4j.MDC;
|
33 | 32 |
|
|
36 | 35 |
|
37 | 36 | import static java.util.Collections.singletonMap;
|
38 | 37 | import static org.assertj.core.api.Assertions.assertThat;
|
| 38 | +import static org.assertj.core.api.Assertions.entry; |
39 | 39 |
|
40 | 40 | /**
|
41 | 41 | * Test taken from OpenTelemetry.
|
@@ -74,6 +74,46 @@ void extract_emptyBaggageHeader() {
|
74 | 74 | assertThat(contextWithBaggage).isEqualTo(contextWithBraveBaggageFields(context));
|
75 | 75 | }
|
76 | 76 |
|
| 77 | + @Test |
| 78 | + void extract_metadataOnlyBaggageHeader() { |
| 79 | + TraceContextOrSamplingFlags context = context(); |
| 80 | + Map<String, String> carrier = new HashMap<>(); |
| 81 | + carrier.put("baggage", ";metadata"); |
| 82 | + |
| 83 | + TraceContextOrSamplingFlags contextWithBaggage = propagator.contextWithBaggage(carrier, context, Map::get); |
| 84 | + assertThat(baggageEntries(contextWithBaggage)).isEmpty(); |
| 85 | + } |
| 86 | + |
| 87 | + @Test |
| 88 | + void extract_noValueBaggageHeader() { |
| 89 | + TraceContextOrSamplingFlags context = context(); |
| 90 | + Map<String, String> carrier = new HashMap<>(); |
| 91 | + carrier.put("baggage", "a="); |
| 92 | + |
| 93 | + TraceContextOrSamplingFlags contextWithBaggage = propagator.contextWithBaggage(carrier, context, Map::get); |
| 94 | + assertThat(baggageEntries(contextWithBaggage)).isEmpty(); |
| 95 | + } |
| 96 | + |
| 97 | + @Test |
| 98 | + void extract_noValueButMetadataBaggageHeader() { |
| 99 | + TraceContextOrSamplingFlags context = context(); |
| 100 | + Map<String, String> carrier = new HashMap<>(); |
| 101 | + carrier.put("baggage", "a=;metadata"); |
| 102 | + |
| 103 | + TraceContextOrSamplingFlags contextWithBaggage = propagator.contextWithBaggage(carrier, context, Map::get); |
| 104 | + assertThat(baggageEntries(contextWithBaggage)).isEmpty(); |
| 105 | + } |
| 106 | + |
| 107 | + @Test |
| 108 | + void extract_keyValuesNotinPairBaggageHeader() { |
| 109 | + TraceContextOrSamplingFlags context = context(); |
| 110 | + Map<String, String> carrier = new HashMap<>(); |
| 111 | + carrier.put("baggage", "a=b,oops,c=,=d,="); |
| 112 | + |
| 113 | + TraceContextOrSamplingFlags contextWithBaggage = propagator.contextWithBaggage(carrier, context, Map::get); |
| 114 | + assertThat(baggageEntries(contextWithBaggage)).containsExactly(entry("a", "b")); |
| 115 | + } |
| 116 | + |
77 | 117 | @Test
|
78 | 118 | void extract_singleEntry() {
|
79 | 119 | TraceContextOrSamplingFlags context = context();
|
@@ -147,17 +187,15 @@ private Map<String, String> baggageEntries(TraceContextOrSamplingFlags flags) {
|
147 | 187 | * data, to make sure we don't blow up with it.
|
148 | 188 | */
|
149 | 189 | @Test
|
150 |
| - @Disabled("We don't support additional data") |
151 | 190 | void extract_invalidHeader() {
|
152 | 191 | TraceContextOrSamplingFlags context = context();
|
153 | 192 | Map<String, String> carrier = new HashMap<>();
|
154 | 193 | carrier.put("baggage", "key1= v;alsdf;-asdflkjasdf===asdlfkjadsf ,,a sdf9asdf-alue1; metadata-key = "
|
155 | 194 | + "value; othermetadata, key2 =value2 , key3 =\tvalue3 ; ");
|
156 | 195 |
|
157 | 196 | TraceContextOrSamplingFlags contextWithBaggage = propagator.contextWithBaggage(carrier, context, Map::get);
|
158 |
| - |
159 |
| - Map<String, String> baggageEntries = baggageEntries(contextWithBaggage); |
160 |
| - assertThat(baggageEntries).isEmpty(); |
| 197 | + assertThat(baggageEntries(contextWithBaggage)).containsExactly(entry("key1", "v"), entry("key2", "value2"), |
| 198 | + entry("key3", "value3")); |
161 | 199 | }
|
162 | 200 |
|
163 | 201 | @Test
|
|
0 commit comments