public void Create_ForSupportedType_ReturnsBinder() { // Arrange var provider = new ComplexTypeModelBinderProvider(); var context = new TestModelBinderProviderContext(typeof(Person)); context.OnCreatingBinder(m => { if (m.ModelType == typeof(int) || m.ModelType == typeof(string)) { return(Mock.Of <IModelBinder>()); } else { Assert.False(true, "Not the right model type"); return(null); } }); // Act var result = provider.GetBinder(context); // Assert Assert.IsType <ComplexTypeModelBinder>(result); }
public void Create_ForNonComplexType_ReturnsNull(Type modelType) { // Arrange var provider = new ComplexTypeModelBinderProvider(); var context = new TestModelBinderProviderContext(modelType); // Act var result = provider.GetBinder(context); // Assert Assert.Null(result); }
public IModelBinder GetBinder(ModelBinderProviderContext context) { if (context == null) { throw new ArgumentNullException(nameof(context)); } if (context.Metadata.IsComplexType) { ComplexTypeModelBinderProvider p = new ComplexTypeModelBinderProvider(); return(new JsonMultiParameterModelBinder(p.GetBinder(context))); } return(null); }
public BodyOrDefaultModelBinderProvider(BodyModelBinderProvider bodyModelBinderProvider, ComplexTypeModelBinderProvider complexTypeModelBinderProvider) { _bodyModelBinderProvider = bodyModelBinderProvider; _complexTypeModelBinderProvider = complexTypeModelBinderProvider; }
/// <summary> /// Initializes a new instance of the <see cref="BodyAndRouteModelBinderProvider"/> class. /// </summary> /// <param name="bodyModelBinderProvider">The body model binder provider.</param> /// <param name="complexTypeModelBinderProvider">The complex type model binder provider.</param> public BodyAndRouteModelBinderProvider(BodyModelBinderProvider bodyModelBinderProvider, ComplexTypeModelBinderProvider complexTypeModelBinderProvider) { _bodyModelBinderProvider = bodyModelBinderProvider; _complexTypeModelBinderProvider = complexTypeModelBinderProvider; }