Exemple #1
0
        public void Extract_MissingParentIdHeader_Exception()
        {
            var headers = new MockTextMap();

            headers.Set(HttpHeaderTraceId, "10");
            Assert.Throws <ArgumentException>(() => _codec.Extract(headers));
        }
Exemple #2
0
        public void Inject_UnknownFormat_Throws()
        {
            var span       = (OpenTracingSpan)_tracer.BuildSpan("Span").Start();
            var headers    = new MockTextMap();
            var mockFormat = new Mock <IFormat <ITextMap> >();

            Assert.Throws <NotSupportedException>(() => _tracer.Inject(span.Context, mockFormat.Object, headers));
        }
Exemple #3
0
        public void Extract_NonIntegerParentId_Exception()
        {
            var headers = new MockTextMap();

            headers.Set(HttpHeaderTraceId, "hello");
            headers.Set(HttpHeaderParentId, "10");
            Assert.Throws <FormatException>(() => _codec.Extract(headers));
        }
Exemple #4
0
        public void Inject_HttpHeadersFormat_CorrectHeaders()
        {
            var span    = (OpenTracingSpan)_tracer.BuildSpan("Span").Start();
            var headers = new MockTextMap();

            _tracer.Inject(span.Context, BuiltinFormats.HttpHeaders, headers);

            Assert.Equal(span.DDSpan.Context.TraceId.ToString(), headers.Get(HttpHeaderNames.HttpHeaderTraceId));
            Assert.Equal(span.DDSpan.Context.SpanId.ToString(), headers.Get(HttpHeaderNames.HttpHeaderParentId));
        }
        public void Inject_TextMapFormat_CorrectHeaders()
        {
            var span    = (OpenTracingSpan)_tracer.BuildSpan("Span").Start();
            var headers = new MockTextMap();

            _tracer.Inject(span.Context, BuiltinFormats.TextMap, headers);

            Assert.Equal(span.Span.Context.TraceId.ToString(), headers.Get(B3HttpHeaderNames.B3TraceId));
            Assert.Equal(span.Span.Context.SpanId.ToString("x16"), headers.Get(B3HttpHeaderNames.B3SpanId));
        }
Exemple #6
0
        public void Extract_UnknownFormat_Throws()
        {
            const ulong parentId = 10;
            var         traceId  = TraceId.CreateFromInt(42);
            var         headers  = new MockTextMap();

            headers.Set(DDHttpHeaderNames.ParentId, parentId.ToString());
            headers.Set(DDHttpHeaderNames.TraceId, traceId.ToString());
            var mockFormat = new Mock <IFormat <ITextMap> >();

            Assert.Throws <NotSupportedException>(() => _tracer.Extract(mockFormat.Object, headers));
        }
Exemple #7
0
        public void Extract_HeadersProperlySet_SpanContext()
        {
            const ulong parentId = 10;
            const ulong traceId  = 42;
            var         headers  = new MockTextMap();

            headers.Set(HttpHeaderNames.HttpHeaderParentId, parentId.ToString());
            headers.Set(HttpHeaderNames.HttpHeaderTraceId, traceId.ToString());

            var otSpanContext = (OpenTracingSpanContext)_tracer.Extract(BuiltinFormats.HttpHeaders, headers);

            Assert.Equal(parentId, otSpanContext.Context.SpanId);
            Assert.Equal(traceId, otSpanContext.Context.TraceId);
        }
Exemple #8
0
        public void Extract_TextMapFormat_HeadersProperlySet_SpanContext()
        {
            const ulong parentId = 10;
            var         traceId  = TraceId.CreateFromInt(42);
            var         headers  = new MockTextMap();

            headers.Set(DDHttpHeaderNames.ParentId, parentId.ToString());
            headers.Set(DDHttpHeaderNames.TraceId, traceId.ToString());

            var otSpanContext = (OpenTracingSpanContext)_tracer.Extract(BuiltinFormats.TextMap, headers);

            Assert.Equal(parentId, otSpanContext.Context.SpanId);
            Assert.Equal(traceId, otSpanContext.Context.TraceId);
        }
Exemple #9
0
        public void Inject_SpanContext_HeadersWithCorrectInfo()
        {
            const ulong spanId  = 10;
            const ulong traceId = 7;

            var ddSpanContext = new SpanContext(traceId, spanId);
            var spanContext   = new OpenTracingSpanContext(ddSpanContext);
            var headers       = new MockTextMap();

            _codec.Inject(spanContext, headers);

            Assert.Equal(spanId.ToString(), headers.Get(HttpHeaderParentId));
            Assert.Equal(traceId.ToString(), headers.Get(HttpHeaderTraceId));
        }
Exemple #10
0
        public void Extract_WrongHeaderCase_ExtractionStillWorks()
        {
            const ulong traceId  = 10;
            const ulong parentId = 120;
            var         headers  = new MockTextMap();

            headers.Set(HttpHeaderTraceId.ToUpper(), traceId.ToString());
            headers.Set(HttpHeaderParentId.ToUpper(), parentId.ToString());
            var spanContext = _codec.Extract(headers);

            Assert.NotNull(spanContext);
            Assert.Equal(traceId, spanContext.Context.TraceId);
            Assert.Equal(parentId, spanContext.Context.SpanId);
        }
Exemple #11
0
        public void Extract_ValidParentAndTraceId_ProperSpanContext()
        {
            const ulong traceId  = 10;
            const ulong parentId = 120;
            var         headers  = new MockTextMap();

            headers.Set(HttpHeaderTraceId, traceId.ToString());
            headers.Set(HttpHeaderParentId, parentId.ToString());
            var spanContext = _codec.Extract(headers);

            Assert.NotNull(spanContext);
            Assert.Equal(traceId, spanContext.Context.TraceId);
            Assert.Equal(parentId, spanContext.Context.SpanId);
        }
Exemple #12
0
        public void Inject_SpanContext_HeadersWithCorrectInfo()
        {
            const ulong            spanId           = 10;
            const ulong            traceId          = 7;
            const SamplingPriority samplingPriority = SamplingPriority.UserKeep;

            var ddSpanContext = new SpanContext(traceId, spanId, samplingPriority);
            var spanContext   = new OpenTracingSpanContext(ddSpanContext);
            var headers       = new MockTextMap();

            _codec.Inject(spanContext, headers);

            Assert.Equal(spanId.ToString("x16"), headers.Get(HttpHeaderParentId));
            Assert.Equal(traceId.ToString("x16"), headers.Get(HttpHeaderTraceId));
            Assert.Equal("1", headers.Get(HttpHeaderDebugSamplingPriority));
        }
Exemple #13
0
        public void Inject_SpanContext_HeadersWithCorrectInfo()
        {
            const ulong            spanId           = 10;
            var                    traceId          = TraceId.CreateFromInt(7);
            const SamplingPriority samplingPriority = SamplingPriority.UserKeep;

            var ddSpanContext = new SpanContext(traceId, spanId, samplingPriority);
            var spanContext   = new OpenTracingSpanContext(ddSpanContext);
            var headers       = new MockTextMap();

            _codec.Inject(spanContext, headers);

            Assert.Equal(spanId.ToString(), headers.Get(HttpHeaderParentId));
            Assert.Equal(traceId.ToString(), headers.Get(HttpHeaderTraceId));
            Assert.Equal(((int)samplingPriority).ToString(), headers.Get(HttpHeaderSamplingPriority));
        }
        public void Extract_ValidParentAndTraceId_ProperSpanContext()
        {
            var         traceId  = TraceId.CreateFromInt(10);
            const ulong parentId = 120;

            var headers = new MockTextMap();

            headers.Set(HttpHeaderTraceId, traceId.ToString());
            headers.Set(HttpHeaderParentId, parentId.ToString("x16"));

            var spanContext = _codec.Extract(headers) as OpenTracingSpanContext;

            Assert.NotNull(spanContext);
            Assert.Equal(traceId, spanContext.Context.TraceId);
            Assert.Equal(parentId, spanContext.Context.SpanId);
        }
Exemple #15
0
        public void Extract_WrongHeaderCase_ExtractionStillWorks()
        {
            const ulong            traceId          = 10;
            const ulong            parentId         = 120;
            const SamplingPriority samplingPriority = SamplingPriority.AutoKeep;

            var headers = new MockTextMap();

            headers.Set(HttpHeaderTraceId.ToUpper(), traceId.ToString("x16"));
            headers.Set(HttpHeaderParentId.ToUpper(), parentId.ToString("x16"));
            headers.Set(HttpHeaderSamplingPriority.ToUpper(), ((int)samplingPriority).ToString());

            var spanContext = _codec.Extract(headers) as OpenTracingSpanContext;

            Assert.NotNull(spanContext);
            Assert.Equal(traceId, spanContext.Context.TraceId);
            Assert.Equal(parentId, spanContext.Context.SpanId);
        }