public async Task InvokeAsync_ExceptionLoggerNull_ThrowsException()
        {
            Task RequestDelegate(HttpContext context)
            {
                return(Task.CompletedTask);
            }

            var ret = new ErrorLoggingMiddleware(RequestDelegate);

            (await ret.Invoking(x => x.InvokeAsync(new DefaultHttpContext(), null)).Should()
             .ThrowAsync <ArgumentNullException>()).And.ParamName.Should().Be("exceptionLogger");
        }
Esempio n. 2
0
        public void SetUp()
        {
            _loggingMock = new Mock <ILogger <ErrorLoggingMiddleware> >(MockBehavior.Strict);


            _errorLoggingMiddleware = new ErrorLoggingMiddleware(next: async(innerHttpContext) =>
            {
                await innerHttpContext.Response.WriteAsync("test response body");
            }, logger: _loggingMock.Object);


            _errorLoggingMiddlewareException = new ErrorLoggingMiddleware(next: (innerHttpContext) => throw new Exception("Error Logging Middleware Exception Raised"), logger: _loggingMock.Object);
        }
        public async Task InvokeAsync_CallsNextDelegate()
        {
            var called = false;

            Task RequestDelegate(HttpContext context)
            {
                called = true;
                return(Task.CompletedTask);
            }

            var ret = new ErrorLoggingMiddleware(RequestDelegate);

            await ret.InvokeAsync(new DefaultHttpContext(), _exceptionLoggerMock.Object);

            called.Should().BeTrue();
        }
        public async Task InvokeAsync_WhenExceptionIsThrown_LoggerIsCalledBeforeThrowing()
        {
            var exception = new Exception();

            Task RequestDelegate(HttpContext context)
            {
                throw exception;
            }

            var ret = new ErrorLoggingMiddleware(RequestDelegate);

            using (new AssertionScope())
            {
                await ret.Invoking(x => x.InvokeAsync(new DefaultHttpContext(), _exceptionLoggerMock.Object)).Should()
                .ThrowAsync <Exception>();

                _exceptionLoggerMock.Verify(x => x.LogExceptionAsync(exception), Times.Once);
            }
        }
Esempio n. 5
0
 public ErrorLoggingMiddlewareTests()
 {
     _sut = new ErrorLoggingMiddleware(_next, _logger);
 }