Beispiel #1
0
 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);
    }
Beispiel #4
0
        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);
        }
Beispiel #5
0
    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);
 }