public void TextMapPropagationRegistry_Inject_HttpHeaders_SetsTheRightHeadersWithTheRightData() { var carrier = new DictionaryTextMap(); _propagationRegistry.Inject(_spanContext, BuiltinFormats.HttpHeaders, carrier); var carrierDict = carrier.ToDictionary(c => c.Key, c => c.Value); Assert.Equal(_spanContext.GetType().FullName, carrierDict[Constants.TraceContextHeaderName]); // cannot mock ToString Assert.Equal(HttpUtility.UrlEncode(_baggage["key1"]), carrierDict[$"{Constants.TraceBaggageHeaderPrefix}-key1"]); Assert.Equal(HttpUtility.UrlEncode(_baggage["key2"]), carrierDict[$"{Constants.TraceBaggageHeaderPrefix}-key2"]); }
public void TextMapPropagator_Extract_TraceContextHeaderMissing() { var headersConfig = new HeadersConfig("TraceContextHeaderName", "TraceBaggageHeaderPrefix"); var propagator = new TextMapPropagator(headersConfig, (val) => val, (val) => val); var carrier = new DictionaryTextMap(new Dictionary <string, string> { { "TraceBaggageHeaderPrefix-Item1", "item1" }, { "TraceBaggageHeaderPrefix-Item2", "item2" }, }); var sc = (SpanContext)propagator.Extract(carrier); Assert.Null(sc); }
public void TextMapPropagationRegistry_Extract_TraceContextHeaderMissing() { var carrier = new DictionaryTextMap(new Dictionary <string, string> { { $"{Constants.TraceBaggageHeaderPrefix}-Item1", "item1/val" }, { $"{Constants.TraceBaggageHeaderPrefix}-Item2", "item2/val" }, }); var sc = (SpanContext)_propagationRegistry.Extract(BuiltinFormats.TextMap, carrier); Assert.Null(sc); sc = (SpanContext)_propagationRegistry.Extract(BuiltinFormats.HttpHeaders, carrier); Assert.Null(sc); }
public void TextMapPropagator_Extract_HttpHeaders_SetsTheRightHeadersWithTheRightData() { var carrier = new DictionaryTextMap(new Dictionary <string, string> { { Constants.TraceContextHeaderName, "1:2:3:4" }, { $"{Constants.TraceBaggageHeaderPrefix}-Item1", "item1%2fval" }, { $"{Constants.TraceBaggageHeaderPrefix}-Item2", "item2%2fval" }, }); var sc = (SpanContext)_propagationRegistry.Extract(BuiltinFormats.HttpHeaders, carrier); var baggage = sc.GetBaggageItems().ToDictionary(kv => kv.Key, kv => kv.Value); Assert.Equal("item1/val", baggage["Item1"]); Assert.Equal("item2/val", baggage["Item2"]); Assert.Equal("1", sc.TraceId.Low.ToString()); Assert.Equal("2", sc.SpanId.ToString()); Assert.Equal("3", sc.ParentId.ToString()); Assert.Equal(4, (byte)sc.Flags); }
public void TextMapPropagator_Inject_SetsTheRightHeadersWithTheRightData() { var headersConfig = new HeadersConfig("TraceContextHeaderName", "TraceBaggageHeaderPrefix"); var propagator = new TextMapPropagator(headersConfig, (val) => val, (val) => val); var baggage = new Dictionary <string, string> { { "key1", "value1" }, { "key2", "value2" } }; var spanContext = Substitute.For <ILetsTraceSpanContext>(); var carrier = new DictionaryTextMap(); spanContext.GetBaggageItems().Returns(baggage); propagator.Inject(spanContext, carrier); var carrierDict = carrier.ToDictionary(c => c.Key, c => c.Value); Assert.Equal(spanContext.GetType().FullName, carrierDict[headersConfig.TraceContextHeaderName]); // cannot mock ToString Assert.Equal(baggage["key1"], carrierDict[$"{headersConfig.TraceBaggageHeaderPrefix}-key1"]); Assert.Equal(baggage["key2"], carrierDict[$"{headersConfig.TraceBaggageHeaderPrefix}-key2"]); }
public void TextMapPropagator_Extract_SetsTheRightHeadersWithTheRightData() { var headersConfig = new HeadersConfig("TraceContextHeaderName", "TraceBaggageHeaderPrefix"); var propagator = new TextMapPropagator(headersConfig, (val) => val, (val) => val); var carrier = new DictionaryTextMap(new Dictionary <string, string> { { "TraceContextHeaderName", "1:2:3:4" }, { "TraceBaggageHeaderPrefix-Item1", "item1" }, { "TraceBaggageHeaderPrefix-Item2", "item2" }, }); var sc = (SpanContext)propagator.Extract(carrier); var baggage = sc.GetBaggageItems().ToDictionary(kv => kv.Key, kv => kv.Value); Assert.Equal("item1", baggage["Item1"]); Assert.Equal("item2", baggage["Item2"]); Assert.Equal("1", sc.TraceId.Low.ToString()); Assert.Equal("2", sc.SpanId.ToString()); Assert.Equal("3", sc.ParentId.ToString()); Assert.Equal(4, (byte)sc.Flags); }