public void BinderType_Provided() { HttpConfiguration config = new HttpConfiguration(); ModelBinderAttribute attr = new ModelBinderAttribute(typeof(CustomModelBinderProvider)); ModelBinderProvider provider = attr.GetModelBinderProvider(config); Assert.IsType<CustomModelBinderProvider>(provider); }
private static HttpParameterBinding GetBinding(HttpParameterDescriptor parameter, ModelBinderAttribute attr) { HttpConfiguration config = parameter.Configuration; return(new ModelBinderParameterBinding(parameter, attr.GetModelBinderProvider(config), attr.GetValueProviderFactories(config))); }
public void BinderType_Provided() { HttpConfiguration config = new HttpConfiguration(); ModelBinderAttribute attr = new ModelBinderAttribute(typeof(CustomModelBinderProvider)); ModelBinderProvider provider = attr.GetModelBinderProvider(config); Assert.IsType <CustomModelBinderProvider>(provider); }
public void Illegal_BinderType() { // Given an illegal type. // Constructor shouldn't throw. But trying to instantiate the model binder provider will throw. HttpConfiguration config = new HttpConfiguration(); ModelBinderAttribute attr = new ModelBinderAttribute(typeof(object)); Assert.Equal(typeof(object), attr.BinderType); // can still lookup illegal type Assert.Throws <InvalidOperationException>(() => attr.GetModelBinderProvider(config)); }
public void Empty_BinderType() { HttpConfiguration config = new HttpConfiguration(); config.Services.Replace(typeof(ModelBinderProvider), new CustomModelBinderProvider()); ModelBinderAttribute attr = new ModelBinderAttribute(); ModelBinderProvider provider = attr.GetModelBinderProvider(config); Assert.IsType<CustomModelBinderProvider>(provider); }
public void Illegal_BinderType() { // Given an illegal type. // Constructor shouldn't throw. But trying to instantiate the model binder provider will throw. ModelBinderAttribute attr = new ModelBinderAttribute(typeof(object)); Assert.Equal(typeof(object), attr.BinderType); // can still lookup illegal type Assert.Throws<InvalidOperationException>( () => attr.GetModelBinderProvider(new HttpConfiguration()) ); }
private HttpParameterBinding DetermineBinding(HttpParameterDescriptor parameter) { HttpConfiguration config = parameter.Configuration; var attr = new ModelBinderAttribute(); // use default settings ModelBinderProvider provider = attr.GetModelBinderProvider(config); // Alternatively, we could put this ValueProviderFactory in the global config. var vpfs = new List<ValueProviderFactory>(attr.GetValueProviderFactories(config)) { new BodyValueProviderFactory() }; var valueProviderFactories = new List<ValueProviderFactory> { new CompositeValueProviderFactory(vpfs) }; return new ModelBinderParameterBinding(parameter, provider, valueProviderFactories); }
public void Empty_BinderType() { HttpConfiguration config = new HttpConfiguration(); config.Services.Replace(typeof(ModelBinderProvider), new CustomModelBinderProvider()); ModelBinderAttribute attr = new ModelBinderAttribute(); ModelBinderProvider provider = attr.GetModelBinderProvider(config); Assert.IsType <CustomModelBinderProvider>(provider); }
public void BinderType_From_ServiceResolver() { // To test ServiceResolver, the registered type and actual type should be different. HttpConfiguration config = new HttpConfiguration(); config.ServiceResolver.SetService(typeof(CustomModelBinderProvider), new SecondCustomModelBinderProvider()); ModelBinderAttribute attr = new ModelBinderAttribute(typeof(CustomModelBinderProvider)); ModelBinderProvider provider = attr.GetModelBinderProvider(config); Assert.IsType <SecondCustomModelBinderProvider>(provider); }
public void BinderType_From_DependencyResolver() { // To test dependency resolver, the registered type and actual type should be different. HttpConfiguration config = new HttpConfiguration(); var mockDependencyResolver = new Mock<IDependencyResolver>(); mockDependencyResolver.Setup(r => r.GetService(typeof(CustomModelBinderProvider))) .Returns(new SecondCustomModelBinderProvider()); config.DependencyResolver = mockDependencyResolver.Object; ModelBinderAttribute attr = new ModelBinderAttribute(typeof(CustomModelBinderProvider)); ModelBinderProvider provider = attr.GetModelBinderProvider(config); Assert.IsType<SecondCustomModelBinderProvider>(provider); }
private HttpParameterBinding DetermineBinding(MvcActionBinding actionBinding, HttpParameterDescriptor parameter) { HttpConfiguration config = parameter.Configuration; var attr = new ModelBinderAttribute(); // use default settings ModelBinderProvider provider = attr.GetModelBinderProvider(config); IModelBinder binder = provider.GetBinder(config, parameter.ParameterType); // Alternatively, we could put this ValueProviderFactory in the global config. List<ValueProviderFactory> vpfs = new List<ValueProviderFactory>(attr.GetValueProviderFactories(config)); vpfs.Add(new BodyValueProviderFactory()); return new ModelBinderParameterBinding(parameter, binder, vpfs); }
public void BinderType_From_DependencyResolver() { // To test dependency resolver, the registered type and actual type should be different. HttpConfiguration config = new HttpConfiguration(); var mockDependencyResolver = new Mock <IDependencyResolver>(); mockDependencyResolver.Setup(r => r.GetService(typeof(CustomModelBinderProvider))) .Returns(new SecondCustomModelBinderProvider()); config.DependencyResolver = mockDependencyResolver.Object; ModelBinderAttribute attr = new ModelBinderAttribute(typeof(CustomModelBinderProvider)); ModelBinderProvider provider = attr.GetModelBinderProvider(config); Assert.IsType <SecondCustomModelBinderProvider>(provider); }
public void BinderType_From_DependencyResolver_ReleasedWhenConfigIsDisposed() { // Arrange HttpConfiguration config = new HttpConfiguration(); var mockDependencyResolver = new Mock<IDependencyResolver>(); SecondCustomModelBinderProvider provider = new SecondCustomModelBinderProvider(); mockDependencyResolver.Setup(r => r.GetService(typeof(CustomModelBinderProvider))).Returns(provider); config.DependencyResolver = mockDependencyResolver.Object; ModelBinderAttribute attr = new ModelBinderAttribute(typeof(CustomModelBinderProvider)); attr.GetModelBinderProvider(config); // Act config.Dispose(); // Assert mockDependencyResolver.Verify(dr => dr.Dispose(), Times.Once()); }
public void BinderType_From_DependencyResolver_ReleasedWhenConfigIsDisposed() { // Arrange HttpConfiguration config = new HttpConfiguration(); var mockDependencyResolver = new Mock <IDependencyResolver>(); SecondCustomModelBinderProvider provider = new SecondCustomModelBinderProvider(); mockDependencyResolver.Setup(r => r.GetService(typeof(CustomModelBinderProvider))).Returns(provider); config.DependencyResolver = mockDependencyResolver.Object; ModelBinderAttribute attr = new ModelBinderAttribute(typeof(CustomModelBinderProvider)); attr.GetModelBinderProvider(config); // Act config.Dispose(); // Assert mockDependencyResolver.Verify(dr => dr.Dispose(), Times.Once()); }
private static HttpParameterBinding GetBinding(HttpParameterDescriptor parameter, ModelBinderAttribute attr) { HttpConfiguration config = parameter.Configuration; return new ModelBinderParameterBinding(parameter, attr.GetModelBinderProvider(config), attr.GetValueProviderFactories(config)); }