Beispiel #1
0
    private static IModelBinder GetModelBinder <T>()
    {
        var provider    = new ValueObjectModelBinderProvider();
        var contextMock = new Mock <ModelBinderProviderContext>();

        contextMock.Setup(c => c.Metadata).Returns(BindingContextHelper.CreateModelMetadata <T>());
        var serviceProvider = new ServiceCollection().AddSingleton <ILoggerFactory>(NullLoggerFactory.Instance).BuildServiceProvider();

        contextMock.Setup(c => c.Services).Returns(serviceProvider);
        contextMock.Setup(c => c.BindingInfo).Returns(new BindingInfo());

        return(provider.GetBinder(contextMock.Object));
    }
    private static async Task <DefaultModelBindingContext> BindAsync <T, TKey>(
        Validate <T, TKey> validate,
        string value)
    {
        var binder = new ValueObjectModelBinder <T, TKey>(NullLoggerFactory.Instance, validate);
        var query  = new Dictionary <string, StringValues> {
            { "name", value }
        };

        var ctx = new DefaultModelBindingContext
        {
            ModelName     = "name",
            ValueProvider = new QueryStringValueProvider(BindingSource.Query, new QueryCollection(query), CultureInfo.InvariantCulture),
            ModelState    = new ModelStateDictionary(),
            ModelMetadata = BindingContextHelper.CreateModelMetadata <T>()
        };

        await binder.BindModelAsync(ctx);

        return(ctx);
    }