Example #1
0
        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());
        }