public void GetBinder_ModelMetadataReturnsReadOnly_ReturnsNull() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType( null, typeof(int[]) ), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider { { "foo[0]", "42" }, } }; bindingContext.ModelMetadata.IsReadOnly = true; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext.ModelType); bool bound = binder.BindModel(null, bindingContext); // Assert Assert.False(bound); }
public void GetBinder_ValueProviderDoesNotContainPrefix_ReturnsNull() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(int[])), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider() }; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext); // Assert Assert.Null(binder); }
public void GetBinder_ValueProviderDoesNotContainPrefix_ReturnsNull() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(int[])), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider() }; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext.ModelType); bool bound = binder.BindModel(null, bindingContext); // Assert Assert.False(bound); }
public void GetBinder_ModelTypeIsIncorrect_ReturnsNull() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(ICollection <int>)), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider { { "foo[0]", "42" }, } }; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext.ModelType); // Assert Assert.Null(binder); }
public void GetBinder_CorrectModelTypeAndValueProviderEntries_ReturnsBinder() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(int[])), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider { { "foo[0]", "42" }, } }; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext.ModelType); // Assert Assert.IsType <ArrayModelBinder <int> >(binder); }
public void GetBinder_ModelTypeIsIncorrect_ReturnsNull() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(ICollection<int>)), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider { { "foo[0]", "42" }, } }; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext.ModelType); // Assert Assert.Null(binder); }
public void GetBinder_CorrectModelTypeAndValueProviderEntries_ReturnsBinder() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(int[])), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider { { "foo[0]", "42" }, } }; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext.ModelType); // Assert Assert.IsType<ArrayModelBinder<int>>(binder); }
public void GetBinder_ModelMetadataReturnsReadOnly_ReturnsNull() { // Arrange ModelBindingContext bindingContext = new ModelBindingContext { ModelMetadata = new EmptyModelMetadataProvider().GetMetadataForType(null, typeof(int[])), ModelName = "foo", ValueProvider = new SimpleHttpValueProvider { { "foo[0]", "42" }, } }; bindingContext.ModelMetadata.IsReadOnly = true; ArrayModelBinderProvider binderProvider = new ArrayModelBinderProvider(); // Act IModelBinder binder = binderProvider.GetBinder(null, bindingContext); // Assert Assert.Null(binder); }
public void ModelBinderToString_With_CompositeModelBinder_Formats() { // Arrange ModelBinderProvider innerProvider1 = new SimpleModelBinderProvider(typeof(int), () => null); ModelBinderProvider innerProvider2 = new ArrayModelBinderProvider(); CompositeModelBinderProvider compositeProvider = new CompositeModelBinderProvider(new ModelBinderProvider[] { innerProvider1, innerProvider2 }); string expected = String.Format( "{0}({1}, {2})", typeof(CompositeModelBinderProvider).Name, typeof(SimpleModelBinderProvider).Name, typeof(ArrayModelBinderProvider).Name); // Act string actual = FormattingUtilities.ModelBinderToString(compositeProvider); // Assert Assert.Equal(expected, actual); }