Пример #1
0
        public void OnExceptionReturnsViewResultWhenInDevelopmentMode()
        {
            _hostingService.Setup(x => x.IsDevelopment()).Returns(true);
            var identity = ModelMetadataIdentity.ForType(typeof(object));
            var metadata = new Mock <ModelMetadata>(identity)
            {
                CallBase = true
            };

            _modelMetadataProvider.Setup(x => x.GetMetadataForType(typeof(object))).Returns(metadata.Object);

            var exception        = new ApplicationException("Test");
            var exceptionContext = new ExceptionContext(_actionContext, new List <IFilterMetadata>())
            {
                Exception = exception
            };
            var filter = new ApplicationExceptionFilter(_hostingService.Object, _modelMetadataProvider.Object, _loggerService.Object);

            filter.OnException(exceptionContext);

            var result = exceptionContext.Result as ViewResult;

            Assert.NotNull(result);
            Assert.Equal("CustomError", result.ViewName);
            Assert.NotNull(result.ViewData);
            Assert.True(result.ViewData.Keys.Contains("Exception"));
            Assert.Equal(exception, result.ViewData["Exception"]);
        }
Пример #2
0
        public void OnExceptionDoesNotModifyResultWhenNotInDevelopmentMode()
        {
            _hostingService.Setup(x => x.IsDevelopment()).Returns(false);
            var exception        = new ApplicationException("Test");
            var exceptionContext = new ExceptionContext(_actionContext, new List <IFilterMetadata>())
            {
                Exception = exception
            };
            var filter = new ApplicationExceptionFilter(_hostingService.Object, _modelMetadataProvider.Object, _loggerService.Object);

            filter.OnException(exceptionContext);

            var result = exceptionContext.Result;

            Assert.Null(result);
        }
Пример #3
0
        public void OnExceptionLogsErrorMessage()
        {
            var exception        = new ApplicationException("Test");
            var exceptionContext = new ExceptionContext(_actionContext, new List <IFilterMetadata>())
            {
                Exception = exception
            };
            var message = "An exception was encountered during the execution of a GET request on Controller.Action.";

            _loggerService.Setup(x => x.LogError(exception, message));
            var filter = new ApplicationExceptionFilter(_hostingService.Object, _modelMetadataProvider.Object, _loggerService.Object);

            filter.OnException(exceptionContext);

            _loggerService.Verify(x => x.LogError(exception, message), Times.Once);
        }