/// <summary> /// Builds an instance of the subtype of <typeparamref name="TObject"/> type the receiver knows how to build, based on /// an a configuration object. /// </summary> /// <param name="context">The <see cref="IBuilderContext"/> that represents the current building process.</param> /// <param name="objectConfiguration">The configuration object that describes the object to build.</param> /// <param name="configurationSource">The source for configuration objects.</param> /// <param name="reflectionCache">The cache to use retrieving reflection information.</param> /// <returns>A fully initialized instance of the <typeparamref name="TObject"/> subtype.</returns> public ICallHandler Assemble(IBuilderContext context, CallHandlerData objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache) { ValidationCallHandlerData castedHandlerData = (ValidationCallHandlerData)objectConfiguration; ValidationCallHandler callHandler = new ValidationCallHandler(castedHandlerData.RuleSet, castedHandlerData.SpecificationSource); return(callHandler); }
public void ShouldCreateDefaultHandlerFromAttribute() { ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(); ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(string.Empty, handler.RuleSet); Assert.AreEqual(SpecificationSource.Both, handler.SpecificationSource); }
public void ShouldCreateDefaultHandlerFromAttribute() { ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(); ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(string.Empty, handler.RuleSet); Assert.AreSame(ValidationFactory.DefaultCompositeValidatorFactory, handler.ValidatorFactory); }
public void ShouldSetRulesetFromAttribute() { string ruleset = "Some Ruleset"; ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(ruleset); ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(ruleset, handler.RuleSet); Assert.AreEqual(SpecificationSource.Both, handler.SpecificationSource); }
public void ShouldSetRulesetFromAttribute() { string ruleset = "Some Ruleset"; ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(ruleset); ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(ruleset, handler.RuleSet); Assert.IsTrue(handler.ValidatorFactory is CompositeValidatorFactory); }
public void ShouldSetSpecificationSourceFromAttribute() { ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(); attribute.SpecificationSource = SpecificationSource.ParameterAttributesOnly; ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(string.Empty, handler.RuleSet); Assert.AreEqual(SpecificationSource.ParameterAttributesOnly, handler.SpecificationSource); }
public void ShouldUseNoValidatorFactoryIfSpecified() { ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(); attribute.SpecificationSource = SpecificationSource.ParameterAttributesOnly; ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(string.Empty, handler.RuleSet); Assert.IsNull(handler.ValidatorFactory); }
public void ShouldUseAttributeValidatorFactoryIfSpecified() { ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(); attribute.SpecificationSource = SpecificationSource.Attributes; ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(string.Empty, handler.RuleSet); Assert.IsTrue(handler.ValidatorFactory is AttributeValidatorFactory); }
public void ShouldUseConfigurationValidatorFactoryIfSpecified() { ValidationCallHandlerAttribute attribute = new ValidationCallHandlerAttribute(); attribute.SpecificationSource = SpecificationSource.Configuration; ValidationCallHandler handler = GetHandlerFromAttribute(attribute); Assert.AreEqual(string.Empty, handler.RuleSet); Assert.AreSame(ValidationFactory.DefaultConfigurationValidatorFactory, handler.ValidatorFactory); }