Exemplo n.º 1
0
 /// <summary>
 /// Initialises a new instance of <see cref="ValidatedValueFromBasisFactory"/>.
 /// </summary>
 /// <param name="validationLogicFactory">A validation logic factory.</param>
 /// <exception cref="System.ArgumentNullException">If <paramref name="validationLogicFactory"/> is <see langword="null" />.</exception>
 public ValidatedValueFromBasisFactory(IGetsValidationLogic validationLogicFactory)
 {
     this.validationLogicFactory = validationLogicFactory ?? throw new System.ArgumentNullException(nameof(validationLogicFactory));
 }
        public void GetValidatedValueShouldGetAnExecutableRuleUsingTheLogicFactoryFromEachManifestRule([Frozen] IGetsValidationLogic validationLogicFactory,
                                                                                                       ValidatedValueFromBasisFactory sut,
                                                                                                       [ExecutableModel] ValidatedValueBasis basis,
                                                                                                       [ManifestModel] ManifestRule rule1,
                                                                                                       [ManifestModel] ManifestRule rule2,
                                                                                                       IValidationLogic logic1,
                                                                                                       IValidationLogic logic2)
        {
            Mock.Get(validationLogicFactory).Setup(x => x.GetValidationLogic(rule1)).Returns(logic1);
            Mock.Get(validationLogicFactory).Setup(x => x.GetValidationLogic(rule2)).Returns(logic2);
            basis.ManifestValue.Rules.Add(rule1);
            basis.ManifestValue.Rules.Add(rule2);

            var result = sut.GetValidatedValue(basis);

            Assert.That(result.Rules.Select(x => x.RuleLogic).ToList(), Is.EqualTo(new[] { logic1, logic2 }));
        }