public void For_WithMessage_When_ThereAre2ValidationTasks_Then_MessageIsChangedInLastValidationTask()
        {
            // 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);
            const string message = "SOME MESSAGE";

            // Act:
            validator.WithMessage(message);

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

            resultValidationTasks.Count.Should().Be(2);
            resultValidationTasks.First().ErrorTransformation.OverridenMessage.Should().BeNull();
            resultValidationTasks.Skip(1).First().ErrorTransformation
            .OverridenMessage.Should().Be(message);
        }
        public void For_WithMessage_When_ProvidedMessageIsNull_Then_ExceptionIsThrown()
        {
            // Arrange:
            var memberInfo = CreateTestMemberInfo();
            var validator  = new PropertyValidatorBaseTestImpl <string>(memberInfo);

            // Act & Assert:
            Assert.Throws <ArgumentNullException>(() => validator.WithMessage(null));
        }
        public void For_WithMessage_When_ThereAreNoValidationTasks_Then_MessageIsNotOverridenForAnyValidationTask()
        {
            // Arrange:
            var          memberInfo = CreateTestMemberInfo();
            var          validator  = new PropertyValidatorBaseTestImpl <string>(memberInfo);
            const string message    = "SOME MESSAGE";

            // Act:
            validator.WithMessage(message);

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

            validationTasks.Count.Should().Be(0);
        }