Exemple #1
0
        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"]);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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"]);
        }
Exemple #6
0
        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);
        }