public void GetManifestRulesShouldIterateOverEveryRuleAdded([Frozen, ManifestModel] ValidatorBuilderContext context, [Frozen] IGetsRuleBuilder ruleBuilderFactory, ValueAccessorBuilder <ValidatedObject, string> sut, [ManifestModel] ManifestValue value) { Mock.Get(ruleBuilderFactory) .Setup(x => x.GetRuleBuilder <StringValueRule>(It.IsAny <ValidatorBuilderContext>(), It.IsAny <Action <IConfiguresRule <StringValueRule> > >())) .Returns(() => { var ruleBuilder = new Mock <IBuildsRule <StringValueRule> >(); ruleBuilder .Setup(x => x.GetManifestValue()) .Returns(() => value); return(ruleBuilder.Object); }); sut.AddRuleWithParent <StringValueRule>(); sut.AddRuleWithParent <StringValueRule>(); var manifestRules = sut.GetManifestValue().Rules.ToList(); Mock.Get(ruleBuilderFactory) .Verify(x => x.GetRuleBuilder <StringValueRule>(context, It.IsAny <Action <IConfiguresRule <StringValueRule> > >()), Times.Exactly(2)); }
public void AddRuleShouldProvideConfigFunctionToRuleBuilder([Frozen] IGetsRuleBuilder ruleBuilderFactory, [Frozen, ManifestModel] ValidatorBuilderContext context, ValueAccessorBuilder <ValidatedObject, string> sut, IBuildsRule <StringValueRule> ruleBuilder, [ManifestModel] ManifestRule rule, [ManifestModel] ManifestValue value) { Mock.Get(ruleBuilderFactory) .Setup(x => x.GetRuleBuilder <StringValueRule>(It.IsAny <ValidatorBuilderContext>(), It.IsAny <Action <IConfiguresRule <StringValueRule> > >())) .Returns(ruleBuilder); Mock.Get(ruleBuilder) .Setup(x => x.GetManifestValue()) .Returns(() => value); Action <IConfiguresRule <StringValueRule> > configFunction = r => { }; sut.AddRuleWithParent <StringValueRule>(configFunction); Mock.Get(ruleBuilderFactory) .Verify(x => x.GetRuleBuilder <StringValueRule>(It.IsAny <ValidatorBuilderContext>(), configFunction), Times.Once); }