В моем классе FluentPropertyValidator есть одно из правил:
RuleFor(p => p.SecurityAddress).SetValidator(new FluentAddressValidator()).When(p => p.CorrespondanceAddressIsSecurityAddress == false);
Это правило должно устанавливать дочерний валидатор типа FluentAddressValidator
для свойства p.SecurityAddress, если значение p.CorrespondanceAddressIsSecurityAddress
равно false.
Однако, когда я запускаю следующий тест в своем тестовом проекте, тест не пройден и говорит, что валидатор не найден.
FluentValidation.TestHelper.ValidationTestException : Expected property 'SecurityAddress' to have a child validator of type 'FluentAddressValidator.'. Instead found 'none'
На мой взгляд, это должно сработать, CorrespondanceAddressIsSecurityAddressимеет значение null, поэтому должен быть установлен дочерний валидатор FluentAddressValidator.Почему это не работает?
[Test]
public void FluentPropertyValidatorSetsAddressValidatorForSecurityAddressIfFlagSetToFalse()
{
property = new Property
{
PropertyId = 1,
InstructionId = 1,
ReferenceNumber = 1,
CaseOwner = "JM",
AmountBorrowed = 50000,
Tenure = TenureTypes.Freehold,
Jurisdiction = JurisdictionTypes.EnglandWales,
Funder = FunderTypes.LT,
CorrespondanceAddressIsSecurityAddress = false,
CorrespondanceAddress = correspondanceAddress,
SecurityAddress = securityAddress
};
validator.ShouldHaveChildValidator(p => p.SecurityAddress, typeof(FluentAddressValidator));
}