public void ReturnsChangesForAddedFieldWarning() { var fieldValidationResults1 = new List <IFieldValidationResult>(); fieldValidationResults1.Add(FieldValidationResult.CreateError("MyProperty", "FieldError")); var businessRuleValidationResults1 = new List <IBusinessRuleValidationResult>(); businessRuleValidationResults1.Add(BusinessRuleValidationResult.CreateWarning("BusinessRuleWarning")); businessRuleValidationResults1.Add(BusinessRuleValidationResult.CreateError("BusinessRuleError")); var context1 = new ValidationContext(fieldValidationResults1, businessRuleValidationResults1); var fieldValidationResults2 = new List <IFieldValidationResult>(); fieldValidationResults2.Add(FieldValidationResult.CreateWarning("MyProperty", "FieldWarning")); fieldValidationResults2.Add(FieldValidationResult.CreateError("MyProperty", "FieldError")); var businessRuleValidationResults2 = new List <IBusinessRuleValidationResult>(); businessRuleValidationResults2.Add(BusinessRuleValidationResult.CreateWarning("BusinessRuleWarning")); businessRuleValidationResults2.Add(BusinessRuleValidationResult.CreateError("BusinessRuleError")); var context2 = new ValidationContext(fieldValidationResults2, businessRuleValidationResults2); var changes = ValidationContextHelper.GetChanges(context1, context2); Assert.AreEqual(1, changes.Count); Assert.AreEqual("MyProperty", ((IFieldValidationResult)changes[0].ValidationResult).PropertyName); Assert.AreEqual("FieldWarning", changes[0].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Warning, changes[0].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Added, changes[0].ChangeType); }
public void ReturnsEmptyCollectionForEqualValidationContexts() { var fieldValidationResults1 = new List <IFieldValidationResult>(); fieldValidationResults1.Add(FieldValidationResult.CreateWarning("MyProperty", "FieldWarning")); fieldValidationResults1.Add(FieldValidationResult.CreateError("MyProperty", "FieldError")); var businessRuleValidationResults1 = new List <IBusinessRuleValidationResult>(); businessRuleValidationResults1.Add(BusinessRuleValidationResult.CreateWarning("BusinessRuleWarning")); businessRuleValidationResults1.Add(BusinessRuleValidationResult.CreateError("BusinessRuleError")); var context1 = new ValidationContext(fieldValidationResults1, businessRuleValidationResults1); var fieldValidationResults2 = new List <IFieldValidationResult>(); fieldValidationResults2.Add(FieldValidationResult.CreateWarning("MyProperty", "FieldWarning")); fieldValidationResults2.Add(FieldValidationResult.CreateError("MyProperty", "FieldError")); var businessRuleValidationResults2 = new List <IBusinessRuleValidationResult>(); businessRuleValidationResults2.Add(BusinessRuleValidationResult.CreateWarning("BusinessRuleWarning")); businessRuleValidationResults2.Add(BusinessRuleValidationResult.CreateError("BusinessRuleError")); var context2 = new ValidationContext(fieldValidationResults2, businessRuleValidationResults2); var changes = ValidationContextHelper.GetChanges(context1, context2); Assert.AreEqual(0, changes.Count); }
public void ThrowsArgumentNullExceptionForNullSecondArgument() { ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => ValidationContextHelper.GetChanges(new ValidationContext(), null)); }
public void ReturnsChangesForComplexScenario() { var fieldValidationResults1 = new List <IFieldValidationResult>(); fieldValidationResults1.Add(FieldValidationResult.CreateWarning("MyProperty", "FieldWarning")); fieldValidationResults1.Add(FieldValidationResult.CreateError("MyProperty", "FieldError")); var businessRuleValidationResults1 = new List <IBusinessRuleValidationResult>(); businessRuleValidationResults1.Add(BusinessRuleValidationResult.CreateWarning("BusinessRuleWarning")); businessRuleValidationResults1.Add(BusinessRuleValidationResult.CreateError("BusinessRuleError")); var context1 = new ValidationContext(fieldValidationResults1, businessRuleValidationResults1); var fieldValidationResults2 = new List <IFieldValidationResult>(); fieldValidationResults2.Add(FieldValidationResult.CreateWarning("MyProperty", "FieldWarningTextHasChanged")); fieldValidationResults2.Add(FieldValidationResult.CreateError("NewProperty", "FieldErrorForNewProperty")); var businessRuleValidationResults2 = new List <IBusinessRuleValidationResult>(); businessRuleValidationResults2.Add(BusinessRuleValidationResult.CreateWarning("BusinessRuleWarningTextHasChanged")); var context2 = new ValidationContext(fieldValidationResults2, businessRuleValidationResults2); var changes = ValidationContextHelper.GetChanges(context1, context2); Assert.AreEqual(7, changes.Count); int counter; // Field warning text has changed, thus removed counter = 0; Assert.AreEqual("MyProperty", ((IFieldValidationResult)changes[counter].ValidationResult).PropertyName); Assert.AreEqual("FieldWarning", changes[counter].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Warning, changes[counter].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Removed, changes[counter].ChangeType); // Field error has been removed counter++; Assert.AreEqual("MyProperty", ((IFieldValidationResult)changes[counter].ValidationResult).PropertyName); Assert.AreEqual("FieldError", changes[counter].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Error, changes[counter].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Removed, changes[counter].ChangeType); // Field warning text has changed, thus added counter++; Assert.AreEqual("MyProperty", ((IFieldValidationResult)changes[counter].ValidationResult).PropertyName); Assert.AreEqual("FieldWarningTextHasChanged", changes[counter].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Warning, changes[counter].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Added, changes[counter].ChangeType); // Field error added counter++; Assert.AreEqual("NewProperty", ((IFieldValidationResult)changes[counter].ValidationResult).PropertyName); Assert.AreEqual("FieldErrorForNewProperty", changes[counter].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Error, changes[counter].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Added, changes[counter].ChangeType); // Business rule text has changed, thus removed counter++; Assert.AreEqual("BusinessRuleWarning", changes[counter].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Warning, changes[counter].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Removed, changes[counter].ChangeType); // Business rule error has been removed counter++; Assert.AreEqual("BusinessRuleError", changes[counter].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Error, changes[counter].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Removed, changes[counter].ChangeType); // Business rule text has changed, thus added counter++; Assert.AreEqual("BusinessRuleWarningTextHasChanged", changes[counter].ValidationResult.Message); Assert.AreEqual(ValidationResultType.Warning, changes[counter].ValidationResult.ValidationResultType); Assert.AreEqual(ValidationContextChangeType.Added, changes[counter].ChangeType); }