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\"]}"); }
/// <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); }
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); }
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()); }