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_MultipleCallsWithSpan() { var tracer = TracerProvider.Default.GetTracer(TracerName); var shim = new SpanBuilderShim(tracer, "foo"); // Multiple calls var span1 = new SpanShim(tracer.StartSpan(SpanName1)); var span2 = new SpanShim(tracer.StartSpan(SpanName2)); shim.AsChildOf(span1); shim.AsChildOf(span2); // build var spanShim = (SpanShim)shim.Start(); Assert.Equal("foo", spanShim.Span.Activity.OperationName); Assert.Contains(spanShim.Context.TraceId, spanShim.Span.Activity.TraceId.ToHexString()); // TODO: Check for multi level parenting }
public void AsChildOf_MultipleCallsWithSpan() { var spanBuilderMock = GetDefaultSpanBuilderMock(); var shim = new SpanBuilderShim(GetDefaultTracer(spanBuilderMock), "foo"); // Multiple calls var span1 = new SpanShim(Defaults.GetOpenTelemetryMockSpan().Object); var span2 = new SpanShim(Defaults.GetOpenTelemetryMockSpan().Object); shim.AsChildOf(span1); shim.AsChildOf(span2); // build shim.Start(); spanBuilderMock.Verify(o => o.SetParent(span1.Span), Times.Once); spanBuilderMock.Verify(o => o.SetParent(It.IsAny <Trace.SpanContext>()), Times.Never); // The rest become links spanBuilderMock.Verify(o => o.AddLink(It.Is <Trace.ILink>(link => link.Context == span2.Span.Context)), 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()); }
public void AsChildOf_WithNullSpan() { var spanBuilderMock = GetDefaultSpanBuilderMock(); var shim = new SpanBuilderShim(GetDefaultTracer(spanBuilderMock), "foo"); // Add a null parent shim.AsChildOf((global::OpenTracing.ISpan)null); // build shim.Start(); spanBuilderMock.Verify(o => o.SetParent(It.IsAny <Trace.ISpan>()), Times.Never); spanBuilderMock.Verify(o => o.SetParent(It.IsAny <Trace.SpanContext>()), Times.Never); }
public void AsChildOf_WithNullSpan() { var tracerMock = GetDefaultTracerMock(); var shim = new SpanBuilderShim(tracerMock.Object, "foo"); // Add a null parent shim.AsChildOf((global::OpenTracing.ISpan)null); // build shim.Start(); tracerMock.Verify(o => o.StartSpan("foo", It.IsAny <ISpan>(), 0, It.Is <SpanCreationOptions>(so => so.StartTimestamp == default && !so.Links.Any())), Times.Once); }
public void AsChildOf_WithNullSpan() { var tracer = TracerProvider.Default.GetTracer(TracerName); var shim = new SpanBuilderShim(tracer, "foo"); // Add a null parent shim.AsChildOf((global::OpenTracing.ISpan)null); // build var spanShim = (SpanShim)shim.Start(); Assert.Equal("foo", spanShim.Span.Activity.OperationName); Assert.Null(spanShim.Span.Activity.Parent); }
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 AsChildOf_WithNullSpanContext() { var tracer = TracerProvider.Default.GetTracer(TracerName); var shim = new SpanBuilderShim(tracer, "foo"); // Add a null parent shim.AsChildOf((global::OpenTracing.ISpanContext)null); // build var spanShim = (SpanShim)shim.Start(); // should be no parent. Assert.Null(spanShim.Span.Activity.Parent); }
public void IgnoreActiveSpan() { var tracerMock = GetDefaultTracerMock(); var shim = new SpanBuilderShim(tracerMock.Object, "foo"); // Add a parent. The shim requires that the ISpan implementation be a SpanShim shim.AsChildOf(new SpanShim(Defaults.GetOpenTelemetryMockSpan().Object)); // Set to Ignore shim.IgnoreActiveSpan(); // build shim.Start(); tracerMock.Verify(o => o.StartRootSpan("foo", 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); }
public void AsChildOf_WithSpan() { var spanBuilderMock = GetDefaultSpanBuilderMock(); var shim = new SpanBuilderShim(GetDefaultTracer(spanBuilderMock), "foo"); // Add a parent. var span = new SpanShim(Defaults.GetOpenTelemetryMockSpan().Object); shim.AsChildOf(span); // build shim.Start(); spanBuilderMock.Verify(o => o.SetParent(span.Span), Times.Once); spanBuilderMock.Verify(o => o.SetParent(It.IsAny <Trace.SpanContext>()), Times.Never); }
public void IgnoreActiveSpan() { var tracer = TracerProvider.Default.GetTracer(TracerName); var shim = new SpanBuilderShim(tracer, "foo"); // Add a parent. The shim requires that the ISpan implementation be a SpanShim shim.AsChildOf(new SpanShim(tracer.StartSpan(SpanName1))); // Set to Ignore shim.IgnoreActiveSpan(); // build var spanShim = (SpanShim)shim.Start(); Assert.Equal("foo", spanShim.Span.Activity.OperationName); }
public void AsChildOf_WithSpan() { var tracer = TracerProvider.Default.GetTracer(TracerName); var shim = new SpanBuilderShim(tracer, "foo"); // Add a parent. var span = new SpanShim(tracer.StartSpan(SpanName1)); shim.AsChildOf(span); // build var spanShim = (SpanShim)shim.Start(); Assert.Equal("foo", spanShim.Span.Activity.OperationName); Assert.NotNull(spanShim.Span.Activity.ParentId); }
public void AsChildOf_WithSpan() { var tracerMock = GetDefaultTracerMock(); var shim = new SpanBuilderShim(tracerMock.Object, "foo"); // Add a parent. var span = new SpanShim(Defaults.GetOpenTelemetryMockSpan().Object); shim.AsChildOf(span); // build shim.Start(); tracerMock.Verify(o => o.StartSpan("foo", span.Span, 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 IgnoreActiveSpan() { var tracerMock = GetDefaultTracerMock(); var shim = new SpanBuilderShim(tracerMock.Object, "foo"); // Add a parent. The shim requires that the ISpan implementation be a SpanShim shim.AsChildOf(new SpanShim(Defaults.GetOpenTelemetryMockSpan().Object)); // Set to Ignore shim.IgnoreActiveSpan(); // build shim.Start(); tracerMock.Verify(o => o.StartRootSpan("foo", 0, It.Is <SpanCreationOptions>(so => so.StartTimestamp == default && !so.Links.Any())), Times.Once); }
public void IgnoreActiveSpan() { var spanBuilderMock = GetDefaultSpanBuilderMock(); var shim = new SpanBuilderShim(GetDefaultTracer(spanBuilderMock), "foo"); // Add a parent. The shim requires that the ISpan implementation be a SpanShim shim.AsChildOf(new SpanShim(Defaults.GetOpenTelemetryMockSpan().Object)); // Set to Ignore shim.IgnoreActiveSpan(); spanBuilderMock.Verify(o => o.SetParent(It.IsAny <Trace.SpanContext>()), Times.Never); // There should be two methods calls to the underlying the builder. SetNoParent is last. int callOrder = 0; spanBuilderMock.Setup(x => x.SetParent(It.IsAny <Trace.ISpan>())).Callback(() => Assert.Equal(0, callOrder++)); spanBuilderMock.Setup(x => x.SetNoParent()).Callback(() => Assert.Equal(1, callOrder++)); // build shim.Start(); }