public void For_WithCode_When_ThereAre2ValidationTasks_Then_CodeIsChangedInLastValidationTask() { // 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 code = "SOME CODE"; // Act: validator.WithCode(code); // Assert: var resultValidationTasks = validator.GetValidationTasksTestMethod(); resultValidationTasks.Count.Should().Be(2); resultValidationTasks.First().ErrorTransformation.OverriddenCode.Should().BeNull(); resultValidationTasks.Skip(1).First().ErrorTransformation .OverriddenCode.Should().Be(code); }
public void For_SetValidator_When_OtherValidatorIsNull_Then_ExceptionIsThrown() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); // Act: Assert.Throws <ArgumentNullException>(() => validator.SetValidator(null)); }
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_WithCode_When_ProvidedCodeIsNull_Then_ExceptionIsNotThrown() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); // Act & Assert: Assert.DoesNotThrow(() => validator.WithCode(null)); }
public void For_AddRule_When_ErrorMessageIsNull_Then_ExceptionIsThrown() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); Predicate <string> anyPredicate = s => s != null; // Act: Assert.Throws <ArgumentNullException>(() => validator.AddRule(anyPredicate, null, null)); }
public void For_AddRule_When_PredicateIsNull_Then_ExceptionIsThrown() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); Predicate <string> predicate = null; // Act: Assert.Throws <ArgumentNullException>(() => validator.AddRule(predicate, It.IsAny <string>(), null)); }
public void For_SetValidator_When_PassedValidatorReferenceConcernsTargetValidator_Then_ExceptionIsThrown() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); // Act & Assert: var exception = Assert.Throws <ArgumentException>(() => validator.SetValidator(validator)); exception.Message.Should().Contain("Detected circular reference"); }
public void For_SetPropertyDisplayName_When_ProvidedDisplayNameIsInvalid_Then_ExceptionIsThrown(string propertyDisplayName) { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); var previousDisplayName = validator.PropertyDisplayName; // Act & Assert: Assert.Throws(Is.AssignableTo <Exception>(), () => validator.SetPropertyDisplayName(propertyDisplayName)); previousDisplayName.Should().Be("SomeProperty"); }
public void For_Ctor_When_ProvidedMemberInfoValueIsValid_Then_ValidatorIsInitialized() { // Arrange: var memberInfo = CreateTestMemberInfo(); // Act: var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); // Assert: validator.Member.IsProperty.Should().BeTrue(); validator.Member.Name.Should().Be("SomeProperty"); validator.PropertyDisplayName.Should().Be("SomeProperty"); }
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_SetValidator_When_ValidatorCanBeSet_Then_ItIsAddedToValidationTasksList() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); // Act: validator.SetValidator(Mock.Of <ISyncValidator <string> >()); // Assert: var validationTasks = validator.GetValidationTasksTestMethod(); validationTasks.Count.Should().Be(1); }
public void For_WithCode_When_ThereAreNoValidationTasks_Then_MessageIsNotOverridenForAnyValidationTask() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); const string code = "SOME CODE"; // Act: validator.WithCode(code); // Assert: var validationTasks = validator.GetValidationTasksTestMethod(); validationTasks.Count.Should().Be(0); }
public void For_SetPropertyDisplayName_When_ProvidedDisplayNameIsValid_Then_ItIsSet() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); const string propertyDisplayName = "SOME_PROPERTY_NAME"; var previousDisplayName = validator.PropertyDisplayName; // Act: validator.SetPropertyDisplayName(propertyDisplayName); // Assert: previousDisplayName.Should().Be("SomeProperty"); validator.PropertyDisplayName.Should().Be(propertyDisplayName); }
public void For_SetValidator_When_OtherValidatorIsAlreadySet_Then_ExceptionIsThrown() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); var validationTask = new ValidationTask(Mock.Of <IValidator>(), true); validator.AddValidationTasksTestMethod(new List <ValidationTask> { validationTask }); // Act: var exception = Assert.Throws <InvalidOperationException>(() => validator.SetValidator(Mock.Of <ISyncValidator <string> >())); exception.Message.Should().Contain("There is already set other validator"); }
public void For_AddRule_When_ProvidedArgumentsAreValid_Then_ValidationTaskIsAdded() { // Arrange: var memberInfo = CreateTestMemberInfo(); var validator = new PropertyValidatorBaseTestImpl <string>(memberInfo); Predicate <string> anyPredicate = s => s != null; const string errorMessage = "SOME ERROR MESSAGE"; // Act: validator.AddRule(anyPredicate, errorMessage, null); // Assert: validator.GetValidationTasksTestMethod().Count.Should().Be(1); var validationTask = validator.GetValidationTasksTestMethod().First(); validationTask.IsOtherValidator.Should().Be(false); validationTask.StopValidationAfterFailure.Should().Be(false); validationTask.Validator.Should().NotBeNull(); }
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(); }