public async Task ExceptionSetsTheStatusCodeTo500() { KissLog.Tests.Common.CommonTestHelpers.ResetContext(); FlushLogArgs flushLogArgs = null; KissLogConfiguration.Listeners.Add(new KissLog.Tests.Common.CustomLogListener(onFlush: (FlushLogArgs arg) => { flushLogArgs = arg; })); var context = Helpers.MockHttpContext(); context.Setup(p => p.Response.StatusCode).Returns(200); var middleware = new KissLogMiddleware((innerHttpContext) => { throw new Exception(); }); try { await middleware.Invoke(context.Object); } catch { // ignored } Assert.AreEqual(500, flushLogArgs.HttpProperties.Response.StatusCode); }
public async Task LogsTheException() { KissLog.Tests.Common.CommonTestHelpers.ResetContext(); var ex = new Exception($"Exception {Guid.NewGuid()}"); FlushLogArgs flushLogArgs = null; KissLogConfiguration.Listeners.Add(new KissLog.Tests.Common.CustomLogListener(onFlush: (FlushLogArgs arg) => { flushLogArgs = arg; })); var context = Helpers.MockHttpContext(); var middleware = new KissLogMiddleware((innerHttpContext) => { throw ex; }); try { await middleware.Invoke(context.Object); } catch { // ignored } CapturedException capturedException = flushLogArgs.Exceptions.First(); LogMessage message = flushLogArgs.MessagesGroups.First().Messages.First(); Assert.AreEqual(ex.Message, capturedException.Message); Assert.IsTrue(message.Message.Contains(ex.Message)); }
public void UpdatesTheLoggerFactory() { KissLog.Tests.Common.CommonTestHelpers.ResetContext(); var middleware = new KissLogMiddleware((innerHttpContext) => { return(null); }); Assert.IsNotNull(Logger.Factory); Assert.IsInstanceOfType(Logger.Factory, typeof(KissLog.AspNetCore.LoggerFactory)); }
public static KissLogMiddleware MockMiddleware(string responseBody = null) { if (responseBody == null) { responseBody = $"ResponseBody {Guid.NewGuid()}"; } var middleware = new KissLogMiddleware((innerHttpContext) => { innerHttpContext.Response.WriteAsync(responseBody).Wait(); return(Task.CompletedTask); }); return(middleware); }