コード例 #1
0
    public void IValidatableObjectGetsAValidator()
    {
        // Arrange
        var provider = new DataAnnotationsModelValidatorProvider(
            new ValidationAttributeAdapterProvider(),
            Options.Create(new MvcDataAnnotationsLocalizationOptions()),
            stringLocalizerFactory: null);
        var mockValidatable = new Mock <IValidatableObject>();
        var metadata        = _metadataProvider.GetMetadataForType(mockValidatable.Object.GetType());

        var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));

        // Act
        provider.CreateValidators(providerContext);

        // Assert
        Assert.Single(providerContext.Results);
    }
コード例 #2
0
    public void UnknownValidationAttributeGetsDefaultAdapter()
    {
        // Arrange
        var provider = new DataAnnotationsModelValidatorProvider(
            new ValidationAttributeAdapterProvider(),
            Options.Create(new MvcDataAnnotationsLocalizationOptions()),
            stringLocalizerFactory: null);
        var metadata = _metadataProvider.GetMetadataForType(typeof(DummyClassWithDummyValidationAttribute));

        var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));

        // Act
        provider.CreateValidators(providerContext);

        // Assert
        var validatorItem = providerContext.Results.Single();

        Assert.IsType <DataAnnotationsModelValidator>(validatorItem.Validator);
    }
コード例 #3
0
    public void CreateValidators_InsertsRequiredValidatorsFirst()
    {
        var provider = new DataAnnotationsModelValidatorProvider(
            new ValidationAttributeAdapterProvider(),
            Options.Create(new MvcDataAnnotationsLocalizationOptions()),
            stringLocalizerFactory: null);
        var metadata = _metadataProvider.GetMetadataForProperty(
            typeof(ClassWithProperty),
            "PropertyWithMultipleValidationAttributes");

        var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));

        // Act
        provider.CreateValidators(providerContext);

        // Assert
        Assert.Equal(4, providerContext.Results.Count);
        Assert.IsAssignableFrom <RequiredAttribute>(((DataAnnotationsModelValidator)providerContext.Results[0].Validator).Attribute);
        Assert.IsAssignableFrom <RequiredAttribute>(((DataAnnotationsModelValidator)providerContext.Results[1].Validator).Attribute);
    }
コード例 #4
0
    public void CreateValidators_ReturnsValidatorForIValidatableObject()
    {
        // Arrange
        var provider = new DataAnnotationsModelValidatorProvider(
            new ValidationAttributeAdapterProvider(),
            Options.Create(new MvcDataAnnotationsLocalizationOptions()),
            stringLocalizerFactory: null);
        var mockValidatable = Mock.Of <IValidatableObject>();
        var metadata        = _metadataProvider.GetMetadataForType(mockValidatable.GetType());

        var providerContext = new ModelValidatorProviderContext(metadata, GetValidatorItems(metadata));

        // Act
        provider.CreateValidators(providerContext);

        // Assert
        var validatorItem = Assert.Single(providerContext.Results);

        Assert.IsType <ValidatableObjectAdapter>(validatorItem.Validator);
    }