public void AddRulesShouldAddBuilderReturnedFromManifestFactory([Frozen, ManifestModel] ValidatorBuilderContext context, [Frozen] IGetsValidatorManifest manifestFactory, ValidatorBuilder <ValidatedObject> sut, IGetsManifestValue manifest, [ManifestModel] ManifestValue value) { Mock.Get(manifestFactory) .Setup(x => x.GetValidatorManifest(typeof(ValidatedObjectValidator), context)) .Returns(manifest); Mock.Get(manifest).Setup(x => x.GetManifestValue()).Returns(() => value); sut.AddRules <ValidatedObjectValidator>(); Assert.That(sut.GetManifestValue().Children.Single(), Is.SameAs(value)); }
public void AddRuleShouldAddRuleCreatedFromFactoryUsingContext([Frozen, ManifestModel] ValidatorBuilderContext context, [Frozen] IGetsValidatorBuilderContext ruleContextFactory, [Frozen] IGetsRuleBuilder ruleBuilderFactory, IBuildsRule <ObjectRule> ruleBuilder, ValidatorBuilder <ValidatedObject> sut, [ManifestModel] ManifestValue value) { Mock.Get(ruleBuilderFactory) .Setup(x => x.GetRuleBuilder <ObjectRule>(context, It.IsAny <Action <IConfiguresRule <ObjectRule> > >())) .Returns(ruleBuilder); Mock.Get(ruleBuilder) .Setup(x => x.GetManifestValue()) .Returns(() => value); sut.AddRule <ObjectRule>(); Assert.That(() => sut.GetManifestValue().Children.Single(), Is.SameAs(value)); }
public void ValidateAsAncestorShouldThrowIfForMemberHasAlreadyBeenUsed([Frozen, ManifestModel] ValidatorBuilderContext context, [Frozen] IGetsValidatorBuilderContext ruleContextFactory, [Frozen] IGetsValueAccessorBuilder valueBuilderFactory, ValidatorBuilder <ValidatedObject> sut, ValidatorBuilderContext ruleContext, IBuildsValueAccessor <ValidatedObject, string> valueBuilder, [ManifestModel] ManifestValue value) { Mock.Get(ruleContextFactory) .Setup(x => x.GetContextForMember(It.IsAny <Expression <Func <ValidatedObject, string> > >(), context, false)) .Returns(ruleContext); Mock.Get(valueBuilderFactory) .Setup(x => x.GetValueAccessorBuilder <ValidatedObject, string>(ruleContext, It.IsAny <Action <IConfiguresValueAccessor <ValidatedObject, string> > >())) .Returns(valueBuilder); Mock.Get(valueBuilder) .Setup(x => x.GetManifestValue()) .Returns(() => value); sut.ForMember(x => x.AProperty, v => { }); Assert.That(() => sut.ValidateAsAncestor(1), Throws.InvalidOperationException); }
public void ValidateAsAncestorShouldSetupGetManifestValueToReturnARecursiveManifestValue([Frozen, ManifestModel] ValidatorBuilderContext context, ValidatorBuilder <ValidatedObject> sut, [ManifestModel] ManifestValue parent, [ManifestModel] ManifestValue grandParent) { context.ManifestValue.Parent = parent; parent.Parent = grandParent; sut.ValidateAsAncestor(2); var result = sut.GetManifestValue(); Assert.That(result, Is.InstanceOf <RecursiveManifestValue>().And.Property(nameof(RecursiveManifestValue.WrappedValue)).SameAs(grandParent)); }