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