Beispiel #1
0
        public void AsChildOfWithSpanContext()
        {
            var tracer = TracerProvider.Default.GetTracer(TracerName);
            var shim   = new SpanBuilderShim(tracer, "foo");

            // Add a parent
            var spanContext = SpanContextShimTests.GetSpanContextShim();
            var test        = shim.AsChildOf(spanContext);

            // build
            var spanShim = (SpanShim)shim.Start();

            Assert.NotNull(spanShim.Span.Activity.ParentId);
        }
Beispiel #2
0
        public void AsChildOfWithSpanContext()
        {
            var tracerMock = GetDefaultTracerMock();
            var shim       = new SpanBuilderShim(tracerMock.Object, "foo");

            // Add a parent
            var spanContext = SpanContextShimTests.GetSpanContextShim();

            shim.AsChildOf(spanContext);

            // build
            shim.Start();

            tracerMock.Verify(o => o.StartSpan("foo", spanContext.SpanContext, 0,
                                               It.Is <SpanCreationOptions>(so => so.StartTimestamp == default && !so.Links.Any())), Times.Once);
        }
Beispiel #3
0
        public void AsChildOfWithSpanContext()
        {
            var spanBuilderMock = GetDefaultSpanBuilderMock();
            var shim            = new SpanBuilderShim(GetDefaultTracer(spanBuilderMock), "foo");

            // Add a parent
            var spanContext = SpanContextShimTests.GetSpanContextShim();

            shim.AsChildOf(spanContext);

            // build
            shim.Start();

            spanBuilderMock.Verify(o => o.SetParent(spanContext.SpanContext), Times.Once);
            spanBuilderMock.Verify(o => o.SetParent(It.IsAny <Trace.ISpan>()), Times.Never);
        }
Beispiel #4
0
        public void AsChildOf_MultipleCallsWithSpanContext()
        {
            var tracerMock = GetDefaultTracerMock();
            var shim       = new SpanBuilderShim(tracerMock.Object, "foo");

            // Multiple calls
            var spanContext1 = SpanContextShimTests.GetSpanContextShim();
            var spanContext2 = SpanContextShimTests.GetSpanContextShim();

            shim.AsChildOf(spanContext1);
            shim.AsChildOf(spanContext2);

            // build
            shim.Start();

            tracerMock.Verify(o => o.StartSpan("foo", spanContext1.SpanContext, 0,
                                               It.Is <SpanCreationOptions>(so => so.StartTimestamp == default && so.Links.Single().Context.Equals(spanContext2.SpanContext))), Times.Once);
        }
Beispiel #5
0
        public void AsChildOf_MultipleCallsWithSpanContext()
        {
            var spanBuilderMock = GetDefaultSpanBuilderMock();
            var shim            = new SpanBuilderShim(GetDefaultTracer(spanBuilderMock), "foo");

            // Multiple calls
            var spanContext1 = SpanContextShimTests.GetSpanContextShim();
            var spanContext2 = SpanContextShimTests.GetSpanContextShim();

            shim.AsChildOf(spanContext1);
            shim.AsChildOf(spanContext2);

            // build
            shim.Start();

            // Only a single call to SetParent
            spanBuilderMock.Verify(o => o.SetParent(spanContext1.SpanContext), Times.Once);
            spanBuilderMock.Verify(o => o.SetParent(It.IsAny <Trace.ISpan>()), Times.Never);

            // The rest become links
            spanBuilderMock.Verify(o => o.AddLink(It.Is <Trace.ILink>(link => link.Context == spanContext2.SpanContext)), Times.Once);
        }
Beispiel #6
0
        public void AsChildOf_MultipleCallsWithSpanContext()
        {
            var tracer = TracerProvider.Default.GetTracer(TracerName);
            var shim   = new SpanBuilderShim(tracer, "foo");

            // Multiple calls
            var spanContext1 = SpanContextShimTests.GetSpanContextShim();
            var spanContext2 = SpanContextShimTests.GetSpanContextShim();

            // Add parent context
            shim.AsChildOf(spanContext1);

            // Adds as link as parent context already exists
            shim.AsChildOf(spanContext2);

            // build
            var spanShim = (SpanShim)shim.Start();

            Assert.Equal("foo", spanShim.Span.Activity.OperationName);
            Assert.Contains(spanContext1.TraceId, spanShim.Span.Activity.ParentId);
            Assert.Equal(spanContext2.SpanId, spanShim.Span.Activity.Links.First().Context.SpanId.ToHexString());
        }