Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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);
        }