public void UnknownValidationAttributeGetsDefaultAdapter() { // Arrange var provider = new DataAnnotationsModelValidatorProvider(); var metadata = _metadataProvider.GetMetadataForType(typeof(DummyClassWithDummyValidationAttribute)); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert var validator = providerContext.Validators.Single(); Assert.IsType<DataAnnotationsModelValidator>(validator); }
public void IValidatableObjectGetsAValidator() { // Arrange var provider = new DataAnnotationsModelValidatorProvider(); var mockValidatable = new Mock<IValidatableObject>(); var metadata = _metadataProvider.GetMetadataForType(mockValidatable.Object.GetType()); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert Assert.Single(providerContext.Validators); }
public void GetValidators_ReturnsValidatorForIValidatableObject() { // Arrange var provider = new DataAnnotationsModelValidatorProvider(); var mockValidatable = Mock.Of<IValidatableObject>(); var metadata = _metadataProvider.GetMetadataForType(mockValidatable.GetType()); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert var validator = Assert.Single(providerContext.Validators); Assert.IsType<ValidatableObjectAdapter>(validator); }
public void IValidatableObjectGetsAValidator() { // Arrange var provider = new DataAnnotationsModelValidatorProvider( new TestOptionsManager<MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null); var mockValidatable = new Mock<IValidatableObject>(); var metadata = _metadataProvider.GetMetadataForType(mockValidatable.Object.GetType()); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert Assert.Single(providerContext.Validators); }
public void GetValidators_DoesNotAddRequiredAttribute_ForNonNullableValueTypes_IfAttributeIsSpecifiedExplicitly() { // Arrange var provider = new DataAnnotationsModelValidatorProvider(); var metadata = _metadataProvider.GetMetadataForProperty(typeof(DummyRequiredAttributeHelperClass), "WithAttribute"); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert var validator = Assert.Single(providerContext.Validators); var adapter = Assert.IsType<RequiredAttributeAdapter>(validator); Assert.Equal("Custom Required Message", adapter.Attribute.ErrorMessage); }
public void UnknownValidationAttributeGetsDefaultAdapter() { // Arrange var provider = new DataAnnotationsModelValidatorProvider( new ValidationAttributeAdapterProvider(), new TestOptionsManager<MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null); var metadata = _metadataProvider.GetMetadataForType(typeof(DummyClassWithDummyValidationAttribute)); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert var validator = providerContext.Validators.Single(); Assert.IsType<DataAnnotationsModelValidator>(validator); }
public void GetValidators_ReturnsValidatorForIValidatableObject() { // Arrange var provider = new DataAnnotationsModelValidatorProvider( new TestOptionsManager<MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null); var mockValidatable = Mock.Of<IValidatableObject>(); var metadata = _metadataProvider.GetMetadataForType(mockValidatable.GetType()); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert var validator = Assert.Single(providerContext.Validators); Assert.IsType<ValidatableObjectAdapter>(validator); }
public void GetValidators_ReturnsValidatorForIValidatableObject() { // Arrange var provider = new DataAnnotationsModelValidatorProvider( new TestOptionsManager <MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null); var mockValidatable = Mock.Of <IValidatableObject>(); var metadata = _metadataProvider.GetMetadataForType(mockValidatable.GetType()); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert var validator = Assert.Single(providerContext.Validators); Assert.IsType <ValidatableObjectAdapter>(validator); }
public void UnknownValidationAttributeGetsDefaultAdapter() { // Arrange var provider = new DataAnnotationsModelValidatorProvider( new ValidationAttributeAdapterProvider(), new TestOptionsManager <MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null); var metadata = _metadataProvider.GetMetadataForType(typeof(DummyClassWithDummyValidationAttribute)); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert var validator = providerContext.Validators.Single(); Assert.IsType <DataAnnotationsModelValidator>(validator); }
public void GetValidators_InsertsRequiredValidatorsFirst() { var provider = new DataAnnotationsModelValidatorProvider( new ValidationAttributeAdapterProvider(), new TestOptionsManager<MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null); var metadata = _metadataProvider.GetMetadataForProperty( typeof(ClassWithProperty), "PropertyWithMultipleValidationAttributes"); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert Assert.Equal(4, providerContext.Validators.Count); Assert.IsAssignableFrom<RequiredAttribute>(((DataAnnotationsModelValidator)providerContext.Validators[0]).Attribute); Assert.IsAssignableFrom<RequiredAttribute>(((DataAnnotationsModelValidator)providerContext.Validators[1]).Attribute); }
public void GetValidators_InsertsRequiredValidatorsFirst() { var provider = new DataAnnotationsModelValidatorProvider( new ValidationAttributeAdapterProvider(), new TestOptionsManager <MvcDataAnnotationsLocalizationOptions>(), stringLocalizerFactory: null); var metadata = _metadataProvider.GetMetadataForProperty( typeof(ClassWithProperty), "PropertyWithMultipleValidationAttributes"); var providerContext = new ModelValidatorProviderContext(metadata); // Act provider.GetValidators(providerContext); // Assert Assert.Equal(4, providerContext.Validators.Count); Assert.IsAssignableFrom <RequiredAttribute>(((DataAnnotationsModelValidator)providerContext.Validators[0]).Attribute); Assert.IsAssignableFrom <RequiredAttribute>(((DataAnnotationsModelValidator)providerContext.Validators[1]).Attribute); }
public void AdapterFactory_RegistersAdapters_ForDataTypeAttributes(ValidationAttribute attribute, string expectedRuleName) { // Arrange var adapters = new DataAnnotationsModelValidatorProvider().AttributeFactories; var adapterFactory = adapters.Single(kvp => kvp.Key == attribute.GetType()).Value; // Act var adapter = adapterFactory(attribute); // Assert var dataTypeAdapter = Assert.IsType<DataTypeAttributeAdapter>(adapter); Assert.Equal(expectedRuleName, dataTypeAdapter.RuleName); }
public void AdapterFactory_RegistersAdapters_ForDataAnnotationAttributes(ValidationAttribute attribute, Type expectedAdapterType) { // Arrange var adapters = new DataAnnotationsModelValidatorProvider().AttributeFactories; var adapterFactory = adapters.Single(kvp => kvp.Key == attribute.GetType()).Value; // Act var adapter = adapterFactory(attribute); // Assert Assert.IsType(expectedAdapterType, adapter); }