public void For_StopValidationAfterFailure_When_ThereAreNoValidationTasks_Then_ConstraintIsNotAppliedToAnyValidationTask()
        {
            // Arrange:
            var memberInfo = CreateTestMemberInfo();
            var validator  = new PropertyValidatorBaseTestImpl <string>(memberInfo);

            // Act:
            validator.StopValidationAfterFailure();

            // Assert:
            var validationTasks = validator.GetValidationTasksTestMethod();

            validationTasks.Count.Should().Be(0);
        }
        public void For_StopValidationAfterFailure_When_ThereAre2ValidationTasks_Then_ConstraintIsAppliedToLastValidationTask()
        {
            // Arrange:
            var memberInfo      = CreateTestMemberInfo();
            var validator       = new PropertyValidatorBaseTestImpl <string>(memberInfo);
            var validationTasks = new List <ValidationTask>
            {
                new ValidationTask(Mock.Of <IValidator>(), false),
                new ValidationTask(Mock.Of <IValidator>(), false)
            };

            validator.AddValidationTasksTestMethod(validationTasks);

            // Act:
            validator.StopValidationAfterFailure();

            // Assert:
            var resultValidationTasks = validator.GetValidationTasksTestMethod();

            resultValidationTasks.Count.Should().Be(2);
            resultValidationTasks.First().StopValidationAfterFailure.Should().BeFalse();
            resultValidationTasks.Skip(1).First().StopValidationAfterFailure.Should().BeTrue();
        }