public async Task HandledErrorsWriteToDiagnosticWhenUsingExceptionHandler() { // Arrange DiagnosticListener diagnosticListener = null; var server = TestServer.Create(app => { diagnosticListener = app.ApplicationServices.GetRequiredService <DiagnosticListener>(); app.UseExceptionHandler("/handle-errors"); app.Map("/handle-errors", (innerAppBuilder) => { innerAppBuilder.Run(async(httpContext) => { await httpContext.Response.WriteAsync("Handled error in a custom way."); }); }); app.Run(context => { throw new Exception("Test exception"); }); }); var listener = new TestDiagnosticListener(); diagnosticListener.SubscribeWithAdapter(listener); // Act await server.CreateClient().GetAsync(string.Empty); // Assert Assert.NotNull(listener.EndRequest?.HttpContext); Assert.Null(listener.HostingUnhandledException?.HttpContext); Assert.Null(listener.HostingUnhandledException?.Exception); Assert.Null(listener.DiagnosticUnhandledException?.HttpContext); Assert.Null(listener.DiagnosticUnhandledException?.Exception); Assert.NotNull(listener.DiagnosticHandledException?.HttpContext); Assert.NotNull(listener.DiagnosticHandledException?.Exception); }
public async Task UnhandledErrorsWriteToDiagnosticWhenUsingExceptionPage() { // Arrange DiagnosticListener diagnosticListener = null; var server = TestServer.Create(app => { diagnosticListener = app.ApplicationServices.GetRequiredService<DiagnosticListener>(); app.UseDeveloperExceptionPage(); app.Run(context => { throw new Exception("Test exception"); }); }); var listener = new TestDiagnosticListener(); diagnosticListener.SubscribeWithAdapter(listener); // Act await server.CreateClient().GetAsync("/path"); // Assert Assert.NotNull(listener.EndRequest?.HttpContext); Assert.Null(listener.HostingUnhandledException?.HttpContext); Assert.Null(listener.HostingUnhandledException?.Exception); Assert.NotNull(listener.DiagnosticUnhandledException?.HttpContext); Assert.NotNull(listener.DiagnosticUnhandledException?.Exception); Assert.Null(listener.DiagnosticHandledException?.HttpContext); Assert.Null(listener.DiagnosticHandledException?.Exception); }
public async Task HandledErrorsWriteToDiagnosticWhenUsingExceptionHandler() { // Arrange DiagnosticListener diagnosticListener = null; var server = TestServer.Create(app => { diagnosticListener = app.ApplicationServices.GetRequiredService<DiagnosticListener>(); app.UseExceptionHandler("/handle-errors"); app.Map("/handle-errors", (innerAppBuilder) => { innerAppBuilder.Run(async (httpContext) => { await httpContext.Response.WriteAsync("Handled error in a custom way."); }); }); app.Run(context => { throw new Exception("Test exception"); }); }); var listener = new TestDiagnosticListener(); diagnosticListener.SubscribeWithAdapter(listener); // Act await server.CreateClient().GetAsync(string.Empty); // Assert Assert.NotNull(listener.EndRequest?.HttpContext); Assert.Null(listener.HostingUnhandledException?.HttpContext); Assert.Null(listener.HostingUnhandledException?.Exception); Assert.Null(listener.DiagnosticUnhandledException?.HttpContext); Assert.Null(listener.DiagnosticUnhandledException?.Exception); Assert.NotNull(listener.DiagnosticHandledException?.HttpContext); Assert.NotNull(listener.DiagnosticHandledException?.Exception); }