/// <summary> /// Allows a ruleset to be specified for the validation. /// </summary> /// <param name="validator">Instance of the validator being extended.</param> /// <param name="target">Instance of the object to be validated.</param> /// <param name="ruleSet">Rule set to validate.</param> /// <param name="includeDefaultRuleset">Optional parameter indicating whether the default ruleset should be used. True by default.</param> /// <returns>An enumeration of ValidationResults. An entry for each validation error or an empty enumeration for Valid.</returns> public static IEnumerable <ValidationResult> ValidateFor(this ICanValidate validator, object target, string ruleSet, bool includeDefaultRuleset = true) { var rulesets = includeDefaultRuleset ? "default," + ruleSet : ruleSet; var method = validator.GetType().GetTypeInfo().GetMethods().First(m => m.Name == "ValidateFor" && m.GetParameters().Length == 2); return((IEnumerable <ValidationResult>)method.Invoke(validator, new[] { target, rulesets })); }
public CommandScenario() { principal = new GenericPrincipal(new GenericIdentity("test"), new string[] { }); event_source = new Mock <IEventSource>(); GeneratedEvents = new UncommittedEventStream(event_source.Object); uncommitted_event_stream_coordinator = new Mock <IUncommittedEventStreamCoordinator>(); process_method_invoker = new Mock <IProcessMethodInvoker>(); call_context_mock = new Mock <ICallContext>(); execution_context_factory_mock = new Mock <IExecutionContextFactory>(); execution_context_manager = new ExecutionContextManager(execution_context_factory_mock.Object, call_context_mock.Object); command_context_factory = new CommandContextFactory(uncommitted_event_stream_coordinator.Object, process_method_invoker.Object, execution_context_manager); command_context_manager = new CommandContextManager(command_context_factory); command_handler_manager = new Mock <ICommandHandlerManager>(); command_handler_manager.Setup(m => m.Handle(It.IsAny <ICommand>())).Callback((ICommand c) => command_handler.Handle((dynamic)c)); localizer = new Mock <ILocalizer>(); command_validators_mock = new Mock <ICommandValidators>(); command_security_manager_mock = new Mock <ICommandSecurityManager>(); //TODO: Allow spec'ing of Security command_security_manager_mock.Setup(s => s.Authorize(It.IsAny <ICommand>())).Returns(new AuthorizationResult()); command_coordinator = new CommandCoordinator( command_handler_manager.Object, command_context_manager, command_security_manager_mock.Object, command_validators_mock.Object, localizer.Object, Mock.Of <IExceptionPublisher>(), Mock.Of <ILogger>()); null_validator_mock = new Mock <ICanValidate <T> >(); null_validator = null_validator_mock.Object; input_validator = null_validator; business_validator = null_validator; uncommitted_event_stream_coordinator.Setup(es => es.Commit(It.IsAny <TransactionCorrelationId>(), It.IsAny <UncommittedEventStream>())) .Callback((TransactionCorrelationId i, UncommittedEventStream ues) => RecordGeneratedEvents(ues)); }
public static void RegisterValidatorFor <T>(T entity, ICanValidate <T> validator) where T : ICanValidate <T> { Validators.Add(entity.GetType(), validator); }
/// <summary> /// Specifies validators to be used for input and business validation of the <see cref="ICommand">Command</see> in this scenario. /// </summary> /// <param name="inputValidator">Input Validator to use for input validation</param> /// <param name="businessValidator">Business Validator to use for business validation</param> public void ValidatedWith(ICanValidate <T> inputValidator, ICanValidate <T> businessValidator) { input_validator = inputValidator; business_validator = businessValidator; }
/// <summary> /// Specifices <see cref="ICanValidate">Validator</see> to be used for Business Validation of the <see cref="ICommand">Command</see> in this scenario. /// </summary> /// <param name="businessValidator">Business validator to be used.</param> public void BusinessRulesValidatedWith(ICanValidate <T> businessValidator) { ValidatedWith(null_validator, businessValidator); }
/// <summary> /// Specifies <see cref="ICanValidate">Validator</see>"/> to be used for Input Validation of the <see cref="ICommand">Command</see> in this scenario. /// </summary> /// <param name="inputValidator">Input validator to be used.</param> public void InputValidatedWith(ICanValidate <T> inputValidator) { ValidatedWith(inputValidator, null_validator); }
internal void Register(ICanValidate component, Action onRevalidation) { _registeredComponents.Add(component, onRevalidation); }