public void IsGlobal_ReturnsTrueIfPathIsEmpty()
        {
            var testError = ValidationError.CreateErrorAtPath("any Message", "");

            testError.IsGlobal.Should().BeTrue();
        }
        public void IsGlobal_ReturnsFalseIfPathIsSet(string testErrorPath)
        {
            var testError = ValidationError.CreateErrorAtPath("any Message", testErrorPath);

            testError.IsGlobal.Should().BeFalse();
        }
        public void CreateErrorAtPath_ConvertsNullPathToEmptyPath()
        {
            var testError = ValidationError.CreateErrorAtPath("any Message", null);

            testError.ErrorPath.Should().BeEmpty();
        }
        public void CreateErrorAtPath_ThrowsExceptionIfErrorMessageIsNull()
        {
            Action errorCreation = () => ValidationError.CreateErrorAtPath(null, "any Path");

            errorCreation.Should().ThrowExactly <ArgumentNullException>().Which.ParamName.Should().Be("errorMessage");
        }
        public void CreateErrorAtPath_SetsErrorPathCorrectly(string testPath)
        {
            var testError = ValidationError.CreateErrorAtPath("any error message", testPath);

            testError.ErrorPath.Should().Be(testPath);
        }
        public void CreateErrorAtPath_SetsErrorMessageCorrectly(string testErrorMessage)
        {
            var testError = ValidationError.CreateErrorAtPath(testErrorMessage, "any Path");

            testError.ErrorMessage.Should().Be(testErrorMessage);
        }
 private static IEnumerable <ValidationError> ReadValidationErrorsFromModelStateEntry(KeyValuePair <string, ModelStateEntry> modelStateEntry)
 => modelStateEntry.Value.Errors.Select(error => ValidationError.CreateErrorAtPath(error.ErrorMessage, modelStateEntry.Key));