コード例 #1
0
    public void PropertyValidationFilter_Null_IfPropertyHasValidateNeverOnItsType()
    {
        // Arrange
        var provider = new DefaultValidationMetadataProvider();

        var attributes = new Attribute[] { new ValidateNeverAttribute() };
        var key        = ModelMetadataIdentity.ForProperty(typeof(string).GetProperty(nameof(string.Length)), typeof(int), typeof(string));
        var context    = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, new object[0], null));

        // Act
        provider.CreateValidationMetadata(context);

        // Assert
        Assert.Null(context.ValidationMetadata.PropertyValidationFilter);
    }
コード例 #2
0
    public void PropertyValidationFilter_Null_ForType()
    {
        // Arrange
        var provider = new DefaultValidationMetadataProvider();

        var attributes = new Attribute[] { new ValidateNeverAttribute() };
        var key        = ModelMetadataIdentity.ForType(typeof(ValidateNeverClass));
        var context    = new ValidationMetadataProviderContext(key, new ModelAttributes(attributes, null, null));

        // Act
        provider.CreateValidationMetadata(context);

        // Assert
        Assert.Null(context.ValidationMetadata.PropertyValidationFilter);
    }
コード例 #3
0
    public void GetValidationDetails_MarkedWithModelValidator_ReturnsValidator()
    {
        // Arrange
        var provider = new DefaultValidationMetadataProvider();

        var attribute  = new TestModelValidationAttribute();
        var attributes = new Attribute[] { attribute };
        var key        = ModelMetadataIdentity.ForProperty(typeof(string).GetProperty(nameof(string.Length)), typeof(int), typeof(string));
        var context    = new ValidationMetadataProviderContext(key, new ModelAttributes(new object[0], attributes, null));

        // Act
        provider.CreateValidationMetadata(context);

        // Assert
        var validatorMetadata = Assert.Single(context.ValidationMetadata.ValidatorMetadata);

        Assert.Same(attribute, validatorMetadata);
    }
コード例 #4
0
    public void PropertyValidationFilter_ShouldValidateEntry_False_IfContainingTypeInheritsValidateNever()
    {
        // Arrange
        var provider = new DefaultValidationMetadataProvider();

        var key = ModelMetadataIdentity.ForProperty(
            typeof(ValidateNeverSubclass).GetProperty(nameof(ValidateNeverSubclass.SubclassName)),
            typeof(string),
            typeof(ValidateNeverSubclass));
        var context = new ValidationMetadataProviderContext(key, new ModelAttributes(new object[0], new object[0], null));

        // Act
        provider.CreateValidationMetadata(context);

        // Assert
        Assert.NotNull(context.ValidationMetadata.PropertyValidationFilter);
        Assert.False(context.ValidationMetadata.PropertyValidationFilter.ShouldValidateEntry(
                         new ValidationEntry(),
                         new ValidationEntry()));
    }