private ModelBindingResult GetBindingResult(Type modelType, string routeParam) { var modelMetadata = ModelMetadataInitializer.ForType(modelType); var mockValueProvider = new Mock <IValueProvider>(); mockValueProvider.Setup(p => p.GetValue(It.IsAny <string>())).Returns(new ValueProviderResult(new StringValues(routeParam))); var modelBindingContext = new DefaultModelBindingContext { ModelMetadata = modelMetadata, ValueProvider = mockValueProvider.Object }; var binder = new KeyModelBinder(new ListProvider()); binder.BindModelAsync(modelBindingContext); return(modelBindingContext.Result); }
public void GetModelErrors_ModelStateWithErrors_ErrorList() { var modelState = new ModelStateDictionary(); modelState.AddModelError("field1", "field1Message"); modelState.AddModelError("field2", "field2Message"); modelState.AddModelError("field1", new Exception("field1Exception"), ModelMetadataInitializer.ForType(typeof(SchoolOutDto))); modelState.AddModelError("field2", new Exception("field2Exception"), ModelMetadataInitializer.ForType(typeof(SchoolOutDto))); var expectedErrors = new List <ModelStateError> { new ModelStateError("field1", "field1Message"), new ModelStateError("field1", "field1Exception"), new ModelStateError("field2", "field2Message"), new ModelStateError("field2", "field2Exception"), }; var modelStateResolver = new ModelStateResolver(new FieldNameResolver(new MvcJsonOptionsTests())); Assert.Equal(expectedErrors.ToJson(), modelStateResolver.GetModelErrors(modelState).ToJson()); }