Exemplo n.º 1
0
        public void GetValidationManifestShouldGetAValidationManifestUsingServices([Frozen] IConvertsModelValuesToManifestValues valueConverter,
                                                                                   [Frozen] IConvertsModelRulesToManifestRules ruleConverter,
                                                                                   ValidationManifestFromModelConverter sut,
                                                                                   [ManifestModel] Value rootValue,
                                                                                   Type validatedType,
                                                                                   [ManifestModel] ModelToManifestValueConversionResult conversionResult)
        {
            Mock.Get(valueConverter)
            .Setup(x => x.ConvertAllValues(It.Is <ModelToManifestConversionContext>(c => c.CurrentValue == rootValue && c.ValidatedType == validatedType)))
            .Returns(conversionResult);

            var result = sut.GetValidationManifest(rootValue, validatedType);

            Assert.Multiple(() =>
            {
                Assert.That(result, Has.Property(nameof(ValidationManifest.RootValue)).SameAs(conversionResult.RootValue), "Correct root value");
                Assert.That(result, Has.Property(nameof(ValidationManifest.ValidatedType)).SameAs(validatedType), "Correct validated type");
            });

            Mock.Get(ruleConverter).Verify(x => x.ConvertAllRulesAndAddToManifestValues(conversionResult.ConvertedValues), Times.Once, "Rule converter was used correctly");
        }
 /// <summary>
 /// Initialises an instance of <see cref="ValidationManifestFromModelConverter"/>.
 /// </summary>
 /// <param name="valueConverter">A conversion service for model values to manifest values.</param>
 /// <param name="ruleConverter">A conversion service for model rules to manifest rules.</param>
 public ValidationManifestFromModelConverter(IConvertsModelValuesToManifestValues valueConverter,
                                             IConvertsModelRulesToManifestRules ruleConverter)
 {
     this.valueConverter = valueConverter ?? throw new ArgumentNullException(nameof(valueConverter));
     this.ruleConverter  = ruleConverter ?? throw new ArgumentNullException(nameof(ruleConverter));
 }