コード例 #1
0
    public void CreateBindingDetails_OverrideBehaviorOnBaseClass_OverrideWithRequired_OnClass()
    {
        // Arrange
        var context = new BindingMetadataProviderContext(
            ModelMetadataIdentity.ForProperty(typeof(BindRequiredOverridesInheritedBindNever).GetProperty(nameof(BindRequiredOverridesInheritedBindNever.Property)), typeof(int), typeof(BindRequiredOverridesInheritedBindNever)),
            new ModelAttributes(new object[0], new object[0], null));

        var provider = new DefaultBindingMetadataProvider();

        // Act
        provider.CreateBindingMetadata(context);

        // Assert
        Assert.True(context.BindingMetadata.IsBindingAllowed);
        Assert.True(context.BindingMetadata.IsBindingRequired);
    }
コード例 #2
0
    public void CreateBindingDetails_FindsBindNever_OnBaseClass()
    {
        // Arrange
        var context = new BindingMetadataProviderContext(
            ModelMetadataIdentity.ForProperty(typeof(BindNeverOnClass).GetProperty(nameof(BindNeverOnClass.Property)), typeof(int), typeof(BindNeverOnClass)),
            new ModelAttributes(new object[0], new object[0], null));

        var provider = new DefaultBindingMetadataProvider();

        // Act
        provider.CreateBindingMetadata(context);

        // Assert
        Assert.False(context.BindingMetadata.IsBindingAllowed);
        Assert.False(context.BindingMetadata.IsBindingRequired);
    }
コード例 #3
0
    public void CreateBindingDetails_OverrideBehaviorOnClass_OverrideWithNever()
    {
        // Arrange
        var propertyAttributes = new object[]
        {
            new BindNeverAttribute(),
        };

        var context = new BindingMetadataProviderContext(
            ModelMetadataIdentity.ForProperty(typeof(BindRequiredOnClass).GetProperty(nameof(BindRequiredOnClass.Property)), typeof(int), typeof(BindRequiredOnClass)),
            new ModelAttributes(new object[0], propertyAttributes, null));

        var provider = new DefaultBindingMetadataProvider();

        // Act
        provider.CreateBindingMetadata(context);

        // Assert
        Assert.False(context.BindingMetadata.IsBindingAllowed);
        Assert.False(context.BindingMetadata.IsBindingRequired);
    }
コード例 #4
0
    public void CreateBindingDetails_FindsBindRequired_OnParameter()
    {
        // Arrange
        var parameterAttributes = new object[]
        {
            new BindRequiredAttribute(),
        };

        var context = new BindingMetadataProviderContext(
            ModelMetadataIdentity.ForParameter(ParameterInfos.SampleParameterInfo),
            new ModelAttributes(Array.Empty <object>(), null, parameterAttributes));

        var provider = new DefaultBindingMetadataProvider();

        // Act
        provider.CreateBindingMetadata(context);

        // Assert
        Assert.True(context.BindingMetadata.IsBindingAllowed);
        Assert.True(context.BindingMetadata.IsBindingRequired);
    }
コード例 #5
0
    public void CreateBindingDetails_FindsBindRequired_OnProperty()
    {
        // Arrange
        var propertyAttributes = new object[]
        {
            new BindRequiredAttribute(),
        };

        var context = new BindingMetadataProviderContext(
            ModelMetadataIdentity.ForProperty(typeof(string).GetProperty(nameof(string.Length)), typeof(int), typeof(string)),
            new ModelAttributes(new object[0], propertyAttributes, null));

        var provider = new DefaultBindingMetadataProvider();

        // Act
        provider.CreateBindingMetadata(context);

        // Assert
        Assert.True(context.BindingMetadata.IsBindingAllowed);
        Assert.True(context.BindingMetadata.IsBindingRequired);
    }
コード例 #6
0
    public void CreateBindingDetails_FindsBindingSource()
    {
        // Arrange
        var attributes = new object[]
        {
            new BindingSourceModelBinderAttribute(BindingSource.Body),
            new BindingSourceModelBinderAttribute(BindingSource.Query),
        };

        var context = new BindingMetadataProviderContext(
            ModelMetadataIdentity.ForType(typeof(string)),
            new ModelAttributes(attributes, null, null));

        var provider = new DefaultBindingMetadataProvider();

        // Act
        provider.CreateBindingMetadata(context);

        // Assert
        Assert.Equal(BindingSource.Body, context.BindingMetadata.BindingSource);
    }