Дочерний валидатор FluentValidation не устанавливается правилом - PullRequest
0 голосов
/ 05 октября 2018

В моем классе 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));
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...