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)); }