Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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));
        }