public void CreateODataError_ThrowsArgumentNull_SerializableError()
        {
            // Arrange & Act & Assert
            SerializableError serializableError = null;

            ExceptionAssert.ThrowsArgumentNull(() => SerializableErrorExtensions.CreateODataError(serializableError), "serializableError");
        }
        public static ODataError CreateODataError(this SerializableError serializableError)
        {
            var convertedError = SerializableErrorExtensions.CreateODataError(serializableError);
            var error          = new ODataError
            {
                ErrorCode = DefaultErrorCode,
                Message   = DefaultErrorMessage,
                Details   = new[] { new ODataErrorDetail {
                                        Message = convertedError.Message
                                    } }
            };

            return(error);
        }
        public static ODataError CreateODataError(this SerializableError serializableError, bool isDevelopment)
        {
            var convertedError = SerializableErrorExtensions.CreateODataError(serializableError);
            var error          = new ODataError();

            if (isDevelopment)
            {
                error = convertedError;
            }
            else
            {
                error.Message = DefaultODataErrorMessage;
                error.Details = new[] { new ODataErrorDetail {
                                            Message = convertedError.Message
                                        } };
            }

            return(error);
        }
        public void CreateODataError_Creates_ODataError_UsingModelStateDictionary()
        {
            // Arrange & Act & Assert
            ModelStateDictionary modelState = new ModelStateDictionary();

            modelState.AddModelError("key1", "Test Error 1");
            modelState.AddModelError("key1", "Test Error 2");
            modelState.AddModelError("key3", "Test Error 3");
            SerializableError serializableError = new SerializableError(modelState);

            // Act
            ODataError error = SerializableErrorExtensions.CreateODataError(serializableError);

            // Assert
            Assert.NotNull(error);
            Assert.Equal("key1:\r\nTest Error 1\r\nTest Error 2\r\n\r\nkey3:\r\nTest Error 3", error.Message);
            Assert.Null(error.ErrorCode);
            Assert.Null(error.InnerError);
            Assert.Equal(3, error.Details.Count);
        }
        public void CreateODataError_Creates_AdvancedODataError()
        {
            // Arrange & Act & Assert
            ModelStateDictionary modelState = new ModelStateDictionary();

            modelState.AddModelError("key1", "Test Error 1");
            SerializableError serializableError = new SerializableError(modelState);

            serializableError["ErrorCode"]        = "Error Code 1";
            serializableError["Message"]          = "Error Message 1";
            serializableError["ExceptionMessage"] = "Error ExceptionMessage 1";

            // Act
            ODataError error = SerializableErrorExtensions.CreateODataError(serializableError);

            // Assert
            Assert.NotNull(error);
            Assert.Equal("Error Message 1", error.Message);
            Assert.Equal("Error Code 1", error.ErrorCode);
            Assert.Equal("Error ExceptionMessage 1", error.InnerError.Message);
            Assert.Single(error.Details);
        }
Esempio n. 6
0
        public static ODataError CreateODataError(this SerializableError serializableError, bool isDevelopment)
        {
            // ReSharper disable once InvokeAsExtensionMethod
            var convertedError = SerializableErrorExtensions.CreateODataError(serializableError);
            var error          = new ODataError();

            if (isDevelopment)
            {
                error = convertedError;
            }
            else
            {
                // Sanitise the exposed data when in release mode.
                // We do not want to give the public access to stack traces, etc!
                error.Message = DefaultODataErrorMessage;
                error.Details = new[] { new ODataErrorDetail {
                                            Message = convertedError.Message
                                        } };
            }

            return(error);
        }
        public void CreateODataError_Creates_BasicODataError_WithoutModelStateDictionary()
        {
            // Arrange & Act & Assert
            ModelStateDictionary modelState = new ModelStateDictionary();

            modelState.AddModelError("key3", "Test Error 3");
            SerializableError innerSerializableError = new SerializableError(modelState);

            SerializableError serializableError = new SerializableError();

            serializableError["key1"]       = "Test Error 1";
            serializableError["key2"]       = "Test Error 2";
            serializableError["ModelState"] = innerSerializableError;

            // Act
            ODataError error = SerializableErrorExtensions.CreateODataError(serializableError);

            // Assert
            Assert.NotNull(error);
            Assert.Equal("key1:\r\nTest Error 1\r\n\r\nkey2:\r\nTest Error 2", error.Message);
            Assert.Null(error.ErrorCode);
            Assert.Equal("key3:\r\nTest Error 3", error.InnerError.Message);
            Assert.Equal(2, error.Details.Count);
        }