public void Filter_does_not_redirect_for_other_exception_types()
        {
            var exceptionContext = new ExceptionContext(_actionContext, new List <IFilterMetadata>())
            {
                Exception = new NotImplementedException("Exception that we are not trappig"),
                Result    = new Mock <IActionResult>().Object
            };

            var filter = new ExternalApiExceptionFilter();

            filter.OnException(exceptionContext);

            var redirectToActionResult = exceptionContext.Result as RedirectToActionResult;

            redirectToActionResult.Should().BeNull();
        }
        public void Filter_redirects_to_shutter_page_for_api_exceptions()
        {
            var exceptionContext = new ExceptionContext(_actionContext, new List <IFilterMetadata>())
            {
                Exception = new ExternalApiException("Error calling API"),
                Result    = new Mock <IActionResult>().Object
            };

            var filter = new ExternalApiExceptionFilter();

            filter.OnException(exceptionContext);

            var redirectToActionResult = exceptionContext.Result as RedirectToActionResult;

            redirectToActionResult.Should().NotBeNull();
            redirectToActionResult.ActionName.Should().Be("ExternalApisUnavailable");
            redirectToActionResult.ControllerName.Should().Be("RoatpShutterPage");
        }