Exemple #1
0
        public void FilledDictionary_SerializedToJson_ShouldReturnCorrectJson()
        {
            var dictionary = new ModelValidationDictionary <string>();

            dictionary.Add("FirstName", "John");
            dictionary.Add("LastName", "Doe");

            var json = JsonConvert.SerializeObject(dictionary);

            json.Should().BeEquivalentTo("{\"FirstName\":[\"John\"],\"LastName\":[\"Doe\"]}");
        }
Exemple #2
0
        /// <summary>
        /// Validates the instance
        /// </summary>
        /// <param name="instance">instance to validate</param>
        /// <returns>validation errors</returns>
        public IModelValidationDictionary <string> GetValidationErrors(object instance)
        {
            var validationResults         = new List <ValidationResult>();
            var modelValidationDictionary = new ModelValidationDictionary <string>();

            if (!TryValidateObjectRecursive(instance, validationResults))
            {
                foreach (var validationResult in validationResults)
                {
                    foreach (var memberName in validationResult.MemberNames)
                    {
                        modelValidationDictionary.Add(memberName, validationResult.ErrorMessage);
                    }
                }
                return(modelValidationDictionary);
            }
            return(modelValidationDictionary);
        }
Exemple #3
0
        private ModelValidationDictionary <string> GetModelValidationDictionary(ModelStateDictionary modelState)
        {
            var modelValidationDictionary = new ModelValidationDictionary <string>();

            foreach (var modelstateItem in modelState)
            {
                foreach (var error in modelstateItem.Value.Errors)
                {
                    var errorMessage = error.ErrorMessage;
                    if (string.IsNullOrEmpty(errorMessage))
                    {
                        errorMessage = error.Exception.Message;
                    }
                    modelValidationDictionary.Add(modelstateItem.Key, errorMessage);
                }
            }

            return(modelValidationDictionary);
        }
Exemple #4
0
        public void TestMapValidationException()
        {
            // Arrange
            var hostingEnvironmentMock = new Mock <IHostingEnvironment>();
            var loggerMock             = new Mock <ILogger <ExceptionToActionResultMapper> >();
            var hooks  = new List <IExceptionToActionResultMapperHook>();
            var mapper = new ExceptionToActionResultMapper(hooks, hostingEnvironmentMock.Object, loggerMock.Object);

            var validationDictionary = new ModelValidationDictionary <string>();

            validationDictionary.Add("name", "cannot contain numbers.");
            var ex = new ValidationException <string>(validationDictionary);

            // Act
            var actionResult = mapper.Map(ex);

            // Assert
            Assert.IsType <BadRequestObjectResult>(actionResult);
            var badRequestActionResult = actionResult as BadRequestObjectResult;

            Assert.IsType <ValidationErrorContent <object> >(badRequestActionResult.Value);
            Assert.Equal("cannot contain numbers.", ((ValidationErrorContent <object>)badRequestActionResult.Value).ValidationMessages.Values.First().First());
        }