public void RegisterValidatableObjectAdapterGuardClauses() { var provider = new DataAnnotationsModelValidatorProvider(); // Attribute type cannot be null Assert.ThrowsArgumentNull( () => provider.RegisterValidatableObjectAdapter(null, typeof(MyValidatableAdapter)), "modelType"); // Adapter type cannot be null Assert.ThrowsArgumentNull( () => provider.RegisterValidatableObjectAdapter(typeof(MyValidatableClass), null), "adapterType"); // Validation attribute must derive from ValidationAttribute Assert.ThrowsArgument( () => provider.RegisterValidatableObjectAdapter(typeof(object), typeof(MyValidatableAdapter)), "modelType", "The type Object must derive from IValidatableObject."); // Adapter must derive from ModelValidator Assert.ThrowsArgument( () => provider.RegisterValidatableObjectAdapter(typeof(MyValidatableClass), typeof(object)), "adapterType", "The type Object must derive from ModelValidator"); // Adapter must have the expected constructor Assert.ThrowsArgument( () => provider.RegisterValidatableObjectAdapter(typeof(MyValidatableClass), typeof(MyValidatableAdapterBadCtor)), "adapterType", "The type MyValidatableAdapterBadCtor must have a public constructor which accepts two parameters of types ModelMetadata and IEnumerable<ModelValidatorProvider>"); }
public void RegisterValidatableObjectAdapter() { // Arrange var provider = new DataAnnotationsModelValidatorProvider(); provider.ValidatableFactories = new Dictionary <Type, DataAnnotationsValidatableObjectAdapterFactory>(); IValidatableObject validatable = new Mock <IValidatableObject>().Object; // Act provider.RegisterValidatableObjectAdapter( validatable.GetType(), typeof(MyValidatableAdapter) ); // Assert var type = provider.ValidatableFactories.Keys.Single(); Assert.Equal(validatable.GetType(), type); var factory = provider.ValidatableFactories.Values.Single(); var metadata = _metadataProvider.GetMetadataForType(() => null, typeof(object)); var validator = factory(_noValidatorProviders); Assert.IsType <MyValidatableAdapter>(validator); }
public void RegisterValidatableObjectAdapterGuardClauses() { var provider = new DataAnnotationsModelValidatorProvider(); // Attribute type cannot be null Assert.ThrowsArgumentNull( () => provider.RegisterValidatableObjectAdapter(null, typeof(MyValidatableAdapter)), "modelType"); // Adapter type cannot be null Assert.ThrowsArgumentNull( () => provider.RegisterValidatableObjectAdapter(typeof(MyValidatableClass), null), "adapterType"); // Validation attribute must derive from ValidationAttribute Assert.ThrowsArgument( () => provider.RegisterValidatableObjectAdapter(typeof(object), typeof(MyValidatableAdapter)), "modelType", "The type Object must derive from IValidatableObject."); // Adapter must derive from ModelValidator Assert.ThrowsArgument( () => provider.RegisterValidatableObjectAdapter(typeof(MyValidatableClass), typeof(object)), "adapterType", "The type Object must derive from ModelValidator"); // Adapter must have the expected constructor Assert.ThrowsArgument( () => provider.RegisterValidatableObjectAdapter(typeof(MyValidatableClass), typeof(MyValidatableAdapterBadCtor)), "adapterType", "The type MyValidatableAdapterBadCtor must have a public constructor which accepts two parameters of types ModelMetadata and IEnumerable<ModelValidatorProvider>"); }
public void RegisterValidatableObjectAdapter() { // Arrange var provider = new DataAnnotationsModelValidatorProvider(); provider.ValidatableFactories = new Dictionary<Type, DataAnnotationsValidatableObjectAdapterFactory>(); IValidatableObject validatable = new Mock<IValidatableObject>().Object; // Act provider.RegisterValidatableObjectAdapter(validatable.GetType(), typeof(MyValidatableAdapter)); // Assert var type = provider.ValidatableFactories.Keys.Single(); Assert.Equal(validatable.GetType(), type); var factory = provider.ValidatableFactories.Values.Single(); var metadata = _metadataProvider.GetMetadataForType(() => null, typeof(object)); var validator = factory(_noValidatorProviders); Assert.IsType<MyValidatableAdapter>(validator); }