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); }
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); }
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); }
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); }
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); }
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()); }