public void ProxyTracer_CreateSpan_ValidArgs()
        {
            var proxyTracer = new ProxyTracer();

            Assert.Same(BlankSpan.Instance, proxyTracer.StartRootSpan("foo"));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartRootSpan("foo", SpanKind.Client));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartRootSpan("foo", SpanKind.Client, null));

            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo"));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", SpanKind.Client));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", SpanKind.Client, null));

            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", BlankSpan.Instance));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", BlankSpan.Instance, SpanKind.Client));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", BlankSpan.Instance, SpanKind.Client, null));

            var defaultContext = default(SpanContext);

            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", defaultContext));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", defaultContext, SpanKind.Client));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpan("foo", defaultContext, SpanKind.Client, null));

            var validActivity = new Activity("foo").SetIdFormat(ActivityIdFormat.W3C).Start();

            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpanFromActivity("foo", validActivity));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpanFromActivity("foo", validActivity, SpanKind.Consumer));
            Assert.Same(BlankSpan.Instance, proxyTracer.StartSpanFromActivity("foo", validActivity, SpanKind.Client, null));
        }
        public void ProxyTracer_CreateSpan_BadArgs_DoesNotThrow()
        {
            var proxyTracer = new ProxyTracer();

            proxyTracer.StartRootSpan(null);
            proxyTracer.StartRootSpan(null, SpanKind.Client);
            proxyTracer.StartRootSpan(null, SpanKind.Client, default);
            proxyTracer.StartRootSpan(null, SpanKind.Client, null);

            proxyTracer.StartSpan(null);
            proxyTracer.StartSpan(null, SpanKind.Client);
            proxyTracer.StartSpan(null, SpanKind.Client, default);
            proxyTracer.StartSpan(null, SpanKind.Client, null);

            proxyTracer.StartSpan(null, BlankSpan.Instance);
            proxyTracer.StartSpan(null, BlankSpan.Instance, SpanKind.Client);
            proxyTracer.StartSpan(null, BlankSpan.Instance, SpanKind.Client, default);
            proxyTracer.StartSpan(null, BlankSpan.Instance, SpanKind.Client, null);

            var defaultContext = default(SpanContext);

            proxyTracer.StartSpan(null, defaultContext);
            proxyTracer.StartSpan(null, defaultContext, SpanKind.Client);
            proxyTracer.StartSpan(null, defaultContext, SpanKind.Client, default);
            proxyTracer.StartSpan(null, defaultContext, SpanKind.Client, null);

            proxyTracer.StartSpanFromActivity(null, new Activity("foo").Start());
            proxyTracer.StartSpanFromActivity(null, null);
            proxyTracer.StartSpanFromActivity(null, new Activity("foo"));
            proxyTracer.StartSpanFromActivity(null, new Activity("foo").SetIdFormat(ActivityIdFormat.Hierarchical).Start());
        }
        public void ProxyTracer_WithSpan()
        {
            var noopScope = new ProxyTracer().WithSpan(BlankSpan.Instance);

            Assert.NotNull(noopScope);
            // does not throw
            noopScope.Dispose();
        }
        public void ProxyTracer_CreateSpan_BadArgs()
        {
            var proxyTracer = new ProxyTracer();

            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null, SpanKind.Client));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null, SpanKind.Client, default));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null, SpanKind.Client, default, null));
        public void ProxyTracer_UpdateTracer_StartRootSpanFrom_Kind_Timestamp_Links()
        {
            var proxyTracer = new ProxyTracer();
            var realTracer  = TracerFactory.Create(b => { }).GetTracer(null);

            proxyTracer.UpdateTracer(realTracer);
            var linkContext = new SpanContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.Recorded);

            var startTimestamp = DateTimeOffset.UtcNow.AddSeconds(-10);
            var span           = (SpanSdk)proxyTracer.StartRootSpan("foo", SpanKind.Server, new SpanCreationOptions
            {
                StartTimestamp = startTimestamp,
                LinksFactory   = () => new[] { new Link(linkContext) },
            });

            Assert.True(span.Context.IsValid);
            Assert.Equal(span.Activity.TraceId, span.Context.TraceId);
            Assert.Equal(span.Activity.SpanId, span.Context.SpanId);
            Assert.Equal(default, span.ParentSpanId);
Example #6
0
        public void ProxyTracer_CreateSpan_BadArgs()
        {
            var proxyTracer = new ProxyTracer();

            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null, SpanKind.Client));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null, SpanKind.Client, default));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartRootSpan(null, SpanKind.Client, null));

            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, SpanKind.Client));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, SpanKind.Client, default));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, SpanKind.Client, null));

            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, BlankSpan.Instance));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, BlankSpan.Instance, SpanKind.Client));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, BlankSpan.Instance, SpanKind.Client, default));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, BlankSpan.Instance, SpanKind.Client, null));

            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, SpanContext.Blank));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, SpanContext.Blank, SpanKind.Client));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, SpanContext.Blank, SpanKind.Client, default));
            Assert.Throws <ArgumentNullException>(() => proxyTracer.StartSpan(null, SpanContext.Blank, SpanKind.Client, null));

            Assert.Throws <ArgumentNullException>(() =>
                                                  proxyTracer.StartSpanFromActivity(null, new Activity("foo").Start()));

            Assert.Throws <ArgumentNullException>(() =>
                                                  proxyTracer.StartSpanFromActivity("foo", null));

            Assert.Throws <ArgumentException>(() =>
                                              proxyTracer.StartSpanFromActivity("foo", new Activity("foo")));

            Assert.Throws <ArgumentException>(() => proxyTracer.StartSpanFromActivity(
                                                  "foo",
                                                  new Activity("foo").SetIdFormat(ActivityIdFormat.Hierarchical).Start()));
        }