internal void Extract_DoNotReturnTraceStateInContextIfNotPresent(IHeadersCollection headers) { var propagator = new W3CSpanContextPropagator(new OtelTraceIdConvention()); headers.Set(W3CHeaderNames.TraceParent, "00-0af7651916cd43dd8448eb211c80319c-00f067aa0ba902b7-01"); var spanContext = propagator.Extract(headers); spanContext.TraceState.Should().BeNullOrEmpty(); }
internal void Inject_DoNotCreateCorrectTraceStateHeaderIfNotPresent(IHeadersCollection headers) { var traceId = TraceId.CreateFromString("0af7651916cd43dd8448eb211c80319c"); const ulong spanId = 67667974448284343; var spanContext = new SpanContext(traceId, spanId, traceState: null); var propagator = new W3CSpanContextPropagator(new OtelTraceIdConvention()); propagator.Inject(spanContext, headers); headers.GetValues(W3CHeaderNames.TraceState).Should().HaveCount(0); }
internal void Extract_OmitsTraceStateWithIncorrectKey(IHeadersCollection headers) { var propagator = new W3CSpanContextPropagator(new OtelTraceIdConvention()); headers.Set(W3CHeaderNames.TraceParent, "00-0af7651916cd43dd8448eb211c80319c-00f067aa0ba902b7-01"); headers.Set(W3CHeaderNames.TraceState, "statDSAe=3,arn=2"); var spanContext = propagator.Extract(headers); spanContext.TraceState.Should().BeNullOrEmpty(); }
internal void Extract_ReturnCorrectTraceAndSpanIdInContext(IHeadersCollection headers) { var propagator = new W3CSpanContextPropagator(new OtelTraceIdConvention()); headers.Set(W3CHeaderNames.TraceParent, "00-0af7651916cd43dd8448eb211c80319c-00f067aa0ba902b7-01"); var spanContext = propagator.Extract(headers); using (new AssertionScope()) { spanContext.SpanId.Should().Be(67667974448284343); spanContext.TraceId.Should().Be(TraceId.CreateFromString("0af7651916cd43dd8448eb211c80319c")); } }
internal void Inject_CreateCorrectTraceStateHeaderIfPresent(IHeadersCollection headers) { var traceId = TraceId.CreateFromString("0af7651916cd43dd8448eb211c80319c"); const ulong spanId = 67667974448284343; var spanContext = new SpanContext(traceId, spanId, "state"); var propagator = new W3CSpanContextPropagator(new OtelTraceIdConvention()); propagator.Inject(spanContext, headers); using (new AssertionScope()) { headers.GetValues(W3CHeaderNames.TraceState).Should().HaveCount(1); headers.GetValues(W3CHeaderNames.TraceState).Should().BeEquivalentTo(new List <string> { "state" }); } }