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 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); }
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 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_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 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); }