Esempio n. 1
0
        public async Task When_InvokingMiddlewareWithStatusCode_Expect_SetTag(int statusCode, bool expectedError)
        {
            // Arrange
            MockTracer mockTracer = new MockTracer();

            OpenTracingSpanTaggingMiddleware middleware = new OpenTracingSpanTaggingMiddleware(
                (httpContext) => Task.CompletedTask,
                mockTracer);

            HttpContext context = new DefaultHttpContext();

            context.Response.StatusCode = statusCode;

            // Act
            using (mockTracer.BuildSpan("Unit Test").StartActive())
            {
                await middleware.Invoke(context);
            }

            // Assert
            MockSpan mockSpan = Assert.Single(mockTracer.FinishedSpans());

            if (mockSpan.Tags.ContainsKey("error"))
            {
                Assert.Equal(expectedError, mockSpan.Tags["error"]);
            }

            Assert.Equal(expectedError, mockSpan.Tags.ContainsKey("error"));
        }
Esempio n. 2
0
        public async Task When_InvokingMiddlewareWithStatusCodeWithNullActiveSpan_Expect_NoSpans()
        {
            // Arrange
            MockTracer mockTracer = new MockTracer();

            OpenTracingSpanTaggingMiddleware middleware = new OpenTracingSpanTaggingMiddleware(
                (httpContext) => Task.CompletedTask,
                mockTracer);

            HttpContext context = new DefaultHttpContext();

            context.Response.StatusCode = 500;

            // Act
            Exception result = await Record.ExceptionAsync(() => middleware.Invoke(context));

            // Assert
            Assert.Empty(mockTracer.FinishedSpans());
            Assert.Null(result);
        }