public async Task ExceptionDataWrapper_SoftException()
        {
            // Arrange
            var httpContext = CreateFakeHttpContext("Get", 500);
            var options     = Options.Create(new MiCakeAspNetOptions()
            {
                DataWrapperOptions = new DataWrapperOptions()
            });
            var exceptionContext = GetExceptionContext(httpContext, new SoftlyMiCakeException("MiCake"));
            var wrapperFilter    = new ExceptionDataWrapperFilter(options, new DefaultWrapperExecutor());

            //action
            await wrapperFilter.OnExceptionAsync(exceptionContext);

            //assert
            var result = exceptionContext.Result as ObjectResult;

            Assert.True(exceptionContext.ExceptionHandled);
            Assert.NotNull(result);

            var apiResponse = result.Value as ApiResponse;

            Assert.NotNull(apiResponse);
            Assert.True(apiResponse.IsError);
            Assert.Equal("MiCake", apiResponse.Message);
        }
        public async Task ExceptionDataWrapper_HasHandledError()
        {
            // Arrange
            var httpContext = CreateFakeHttpContext("Get", 500);
            var options     = Options.Create(new MiCakeAspNetOptions()
            {
                DataWrapperOptions = new DataWrapperOptions()
            });
            var exceptionContext = GetExceptionContext(httpContext, new SoftlyMiCakeException("MiCake"), true);
            var wrapperFilter    = new ExceptionDataWrapperFilter(options, new DefaultWrapperExecutor());

            //action
            await wrapperFilter.OnExceptionAsync(exceptionContext);

            //assert
            var result = exceptionContext.Result as ObjectResult;

            Assert.True(exceptionContext.ExceptionHandled);
            Assert.Null(result);
        }