public void exposeExceptions_with_real_stack_trace() { // generate a real stack trace to serialize ExecutionError error; try { try { throw new ArgumentNullException(null, new ArgumentOutOfRangeException()); } catch (Exception innerException) { throw new ExecutionError(innerException.Message, innerException); } } catch (ExecutionError e) { error = e; } var info = new ErrorInfoProvider(new ErrorInfoProviderOptions { ExposeExceptionStackTrace = true }).GetInfo(error); info.Message.ShouldBe(error.ToString()); }
public void message_and_data() { var data = new Dictionary <string, object>() { { "test1", "object1" }, { "test2", 15 }, { "test3", new Dictionary <string, object>() { { "test4", "object4" } } }, }; var error = new ExecutionError(null, data); error.Data.ShouldNotBeNull(); error.Data.Count.ShouldBe(3); error.Data["test1"].ShouldBe("object1"); error.Data["test2"].ShouldBe(15); error.Data["test3"].ShouldBe(new Dictionary <string, object>() { { "test4", "object4" } }); var info = new ErrorInfoProvider().GetInfo(error); info.Message.ShouldBe(error.Message); info.Extensions.ShouldNotBeNull(); info.Extensions.Count.ShouldBe(1); info.Extensions.ShouldContainKey("data"); info.Extensions["data"].ShouldBeAssignableTo <IDictionary>().ShouldBe(error.Data); }
public void multiple_innerExceptions() { var error = new ExecutionError("Test error message", new ArgumentNullException(null, new ArgumentOutOfRangeException())); error.Data.Add("test1", "object1"); error.Data.Add("test2", 15); error.Data.Add("test3", new Dictionary <string, object>() { { "test4", "object4" } }); error.AddLocation(new Location(5, 6)); error.AddLocation(new Location(7, 8)); var info = new ErrorInfoProvider().GetInfo(error); info.Message.ShouldBe(error.Message); info.Extensions.ShouldNotBeNull(); info.Extensions.Count.ShouldBe(3); info.Extensions.ShouldContainKeyAndValue("code", error.Code); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <string> >().ShouldBe( new[] { ErrorInfoProvider.GetErrorCode <ArgumentNullException>(), ErrorInfoProvider.GetErrorCode <ArgumentOutOfRangeException>() }); info.Extensions.ShouldContainKey("data"); info.Extensions["data"].ShouldBeAssignableTo <IDictionary>().ShouldBe(error.Data); }
private void SetCode(Exception exception) { if (exception != null) { Code = ErrorInfoProvider.GetErrorCode(exception); } }
public void codes_with_blank_code_always_serialize() { var error = new ExecutionError(null, new Exception(null, new ArgumentNullException("param"))); error.Code.ShouldBe(ErrorInfoProvider.GetErrorCode <Exception>()); var info = new ErrorInfoProvider().GetInfo(error); info.Extensions.ShouldNotBeNull(); info.Extensions.ShouldContainKey("code"); info.Extensions["code"].ShouldBe(ErrorInfoProvider.GetErrorCode <Exception>()); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <object> >().ShouldBe( new[] { ErrorInfoProvider.GetErrorCode <Exception>(), ErrorInfoProvider.GetErrorCode <ArgumentNullException>() }); error.Data.Add("test1", "object1"); info = new ErrorInfoProvider().GetInfo(error); info.Extensions.ShouldNotBeNull(); info.Extensions.ShouldContainKey("code"); info.Extensions["code"].ShouldBe(""); info.Extensions.ShouldContainKey("data"); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <object> >().ShouldBe( new[] { ErrorInfoProvider.GetErrorCode <Exception>(), ErrorInfoProvider.GetErrorCode <ArgumentNullException>() }); }
public void verify_exposedata_functionality_no_other_data() { var error = new ExecutionError("message"); error.Data["test"] = "abc"; var info = new ErrorInfoProvider(opts => opts.ExposeData = false).GetInfo(error); info.Extensions.ShouldBeNull(); }
public void simple_message() { var error = new ExecutionError("test message"); var info = new ErrorInfoProvider().GetInfo(error); info.Message.ShouldBe("test message"); info.Extensions.ShouldBeNull(); }
internal static string GetValidationErrorCode(Type type) { var code = ErrorInfoProvider.GetErrorCode(type); if (code != "VALIDATION_ERROR" && code.EndsWith("_ERROR")) { code = code.Substring(0, code.Length - 6); } return(code); }
internal string GetErrorCode() { var code = ErrorInfoProvider.GetErrorCode(GetType()); if (code != "REQUEST_ERROR" && code.EndsWith("_ERROR", StringComparison.Ordinal)) { code = code.Substring(0, code.Length - 6); } return(code); }
public void verify_exposecodes_functionality_no_other_data() { var error = new ExecutionError("message", new ArgumentNullException()) { Code = null }; var info = new ErrorInfoProvider(opts => opts.ExposeCodes = false).GetInfo(error); info.Extensions.ShouldBeNull(); }
public void null_message_ok() { var error = new ExecutionError(null); // create executionerror with a default message error.Message.ShouldNotBeNull(); var info = new ErrorInfoProvider().GetInfo(error); info.Message.ShouldBe(error.Message); }
public void verify_exposeextensions_functionality_codes() { var error = new ExecutionError("test", new ArgumentNullException()) { Code = null }; var info = new ErrorInfoProvider(opts => opts.ExposeExtensions = false).GetInfo(error); info.Extensions.ShouldBeNull(); }
public void verify_exposeextensions_functionality_code() { var error = new ExecutionError("test") { Code = "test code" }; var info = new ErrorInfoProvider(opts => opts.ExposeExtensions = false).GetInfo(error); info.Extensions.ShouldBeNull(); }
public void exposeExceptions() { var innerException = new ArgumentNullException(null, new ArgumentOutOfRangeException()); var error = new ExecutionError(innerException.Message, innerException); var info = new ErrorInfoProvider(new ErrorInfoProviderOptions { ExposeExceptionStackTrace = true }).GetInfo(error); info.Message.ShouldBe(error.ToString()); }
public void drops_extensions_when_no_data() { var error = new ExecutionError(null); error.Code.ShouldBeNull(); error.Data.ShouldNotBeNull(); error.Data.Count.ShouldBe(0); var info = new ErrorInfoProvider().GetInfo(error); info.Extensions.ShouldBeNull(); }
public void verify_exposecode_functionality() { var error = new ExecutionError("message") { Code = "code" }; var info = new ErrorInfoProvider(opts => opts.ExposeCode = false).GetInfo(error); info.Extensions.ShouldNotBeNull(); info.Extensions.ShouldNotContainKey("code"); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <object> >().ShouldBe(new[] { "code" }); }
public void verify_exposedata_functionality_with_other_data() { var error = new ExecutionError("message") { Code = "code" }; error.Data["test"] = "abc"; var info = new ErrorInfoProvider(opts => opts.ExposeData = false).GetInfo(error); info.Extensions.ShouldNotBeNull(); info.Extensions.ShouldContainKey("code"); info.Extensions.ShouldNotContainKey("data"); }
public void inner_exception_of_type_exception_does_serialize_extensions() { var error = new ExecutionError("Test execution error", new Exception("Test exception")); error.Code.ShouldBe(ErrorInfoProvider.GetErrorCode <Exception>()); var info = new ErrorInfoProvider().GetInfo(error); info.Extensions.ShouldNotBeNull(); info.Extensions.ShouldContainKey("code"); info.Extensions["code"].ShouldBe(ErrorInfoProvider.GetErrorCode <Exception>()); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <object> >().ShouldBe(new[] { ErrorInfoProvider.GetErrorCode <Exception>() }); }
public void message_and_code() { var error = new ExecutionError(null) { Code = "test code" }; var info = new ErrorInfoProvider().GetInfo(error); info.Message.ShouldBe(error.Message); info.Extensions.ShouldNotBeNull(); info.Extensions.Count.ShouldBe(2); info.Extensions.ShouldContainKeyAndValue("code", "test code"); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <string> >().ShouldBe(new[] { "test code" }); }
public void verify_exposeextensions_functionality_ignore_other_properties(bool exposeCode, bool exposeCodes, bool exposeData) { var error = new ExecutionError("test", new ArgumentNullException()) { Code = "code" }; error.Data["test"] = "abc"; var info = new ErrorInfoProvider(opts => { opts.ExposeExtensions = false; opts.ExposeCode = exposeCode; opts.ExposeCodes = exposeCodes; opts.ExposeData = exposeData; }).GetInfo(error); info.Extensions.ShouldBeNull(); }
public void message_and_inner_exception() { var innerException = new ArgumentNullException(null, new ArgumentOutOfRangeException()); var error = new ExecutionError(innerException.Message, innerException); error.Code.ShouldBe(ErrorInfoProvider.GetErrorCode <ArgumentNullException>()); error.Code.ShouldNotBeNull(); var info = new ErrorInfoProvider().GetInfo(error); info.Message.ShouldBe(error.Message); info.Extensions.ShouldNotBeNull(); info.Extensions.Count.ShouldBe(2); info.Extensions.ShouldContainKeyAndValue("code", error.Code); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <string> >().ShouldBe( new[] { ErrorInfoProvider.GetErrorCode <ArgumentNullException>(), ErrorInfoProvider.GetErrorCode <ArgumentOutOfRangeException>() }); }
public void blank_codes_do_serialize() { var error = new ExecutionError(null) { Code = "", }; error.Code.ShouldBe(""); var info = new ErrorInfoProvider(new ErrorInfoProviderOptions { ExposeExceptionStackTrace = true }).GetInfo(error); info.Extensions.ShouldNotBeNull(); info.Extensions.ShouldContainKey("code"); info.Extensions["code"].ShouldBe(""); info.Extensions.ShouldContainKey("codes"); info.Extensions["codes"].ShouldBeAssignableTo <IEnumerable <object> >().ShouldBe(new object[] { "" }); }
public void null_executionError_throws() { var provider = new ErrorInfoProvider(); Should.Throw <ArgumentNullException>(() => provider.GetInfo(null)); }
public void geterrorcode_generic_works() { ErrorInfoProvider.GetErrorCode <ArgumentNullException>().ShouldBe("ARGUMENT_NULL"); }
public void geterrorcode_instance_works() { ErrorInfoProvider.GetErrorCode(new ArgumentNullException()).ShouldBe("ARGUMENT_NULL"); }
public void geterrorcode_null_throws() { Assert.Throws <ArgumentNullException>(() => ErrorInfoProvider.GetErrorCode((Type)null)); }
public void geterrorcode_tests(Type type, string code) { ErrorInfoProvider.GetErrorCode(type).ShouldBe(code); }