Exemplo n.º 1
0
        public async Task StartClientTrace_IsNotSampled_ReturnNullSpan()
        {
            var zipkinConfig      = new ZipkinConfig(new Uri("http://localhost"));
            var traceInfoAccessor = Substitute.For <ITraceInfoAccessor>();
            var spanTracer        = Substitute.For <ISpanTracer>();
            var logger            = Substitute.For <ILogger <ZipkinClient> >();

            traceInfoAccessor.TraceInfo.Returns(ci => new TraceInfo(null, string.Empty, false, false, null, null, string.Empty));

            var zipkinClient = new ZipkinClient(zipkinConfig, traceInfoAccessor, spanTracer, logger);

            Assert.IsNull(await zipkinClient.StartClientTrace(null, null));
            Assert.IsNull(await zipkinClient.StartClientTrace(new Uri("http://localhost"), null));
            Assert.IsNull(await zipkinClient.StartClientTrace(new Uri("http://localhost"), "POST"));
        }
Exemplo n.º 2
0
        public void StartClientTrace_WithSpanTracerException_DoesntThrow()
        {
            var zipkinConfig      = new ZipkinConfig(new Uri("http://localhost"));
            var traceInfoAccessor = Substitute.For <ITraceInfoAccessor>();
            var spanTracer        = Substitute.For <ISpanTracer>();
            var logger            = Substitute.For <ILogger <ZipkinClient> >();

            traceInfoAccessor.TraceInfo.Returns(ci => new TraceInfo("traceId", string.Empty, true, false, null, null, string.Empty));

            spanTracer.WhenForAnyArgs(x => x.SendClientSpan(null, null, null)).Throw <Exception>();

            var zipkinClient = new ZipkinClient(zipkinConfig, traceInfoAccessor, spanTracer, logger);

            Assert.DoesNotThrowAsync(() => zipkinClient.StartClientTrace(new Uri("http://localhost"), "POST"));
        }
Exemplo n.º 3
0
        public async Task StartClientTrace_WithTraceOn_ReceiveSpan()
        {
            var traceInfo         = new TraceInfo("traceId", string.Empty, true, false, new Uri("http://localhost"), null);
            var span              = new Span("span", traceInfo);
            var zipkinConfig      = new ZipkinConfig(new Uri("http://localhost"));
            var traceInfoAccessor = Substitute.For <ITraceInfoAccessor>();
            var spanTracer        = Substitute.For <ISpanTracer>();
            var logger            = Substitute.For <ILogger <ZipkinClient> >();

            traceInfoAccessor.TraceInfo.Returns(ci => new TraceInfo("traceId", string.Empty, true, false, null, null, string.Empty));

            spanTracer.SendClientSpan(null, null, null).ReturnsForAnyArgs(span);

            var zipkinClient = new ZipkinClient(zipkinConfig, traceInfoAccessor, spanTracer, logger);

            Assert.AreSame(await zipkinClient.StartClientTrace(new Uri("http://localhost"), "POST"), span);
        }