public ValidationFailed(IEnumerable <ValidationFailure> failures) : base(ErrorMessages.OneOrMoreValidationErrorsOccured) { Failures = new ValidationFailuresCollection(); foreach (var failure in failures .GroupBy(x => x.PropertyName) .Select(x => new ValidationFailure(x.Key, x.SelectMany(y => y.Errors)))) { Failures.Add(failure); } }
public void CanBeEnumerated_asValidationFailures() { var collection = new ValidationFailuresCollection() { new ValidationFailure("A", "A"), new ValidationFailure("B", "B"), new ValidationFailure("C", "C") }; var list = collection.ToList(); Assert.Collection(list, first => { Assert.Equal("A", first.PropertyName); Assert.Equal("A", first.Errors.Single()); }, second => { Assert.Equal("B", second.PropertyName); Assert.Equal("B", second.Errors.Single()); }, third => { Assert.Equal("C", third.PropertyName); Assert.Equal("C", third.Errors.Single()); } ); }
public static void SingleError(string expectedProperty, string expectedError, ValidationFailuresCollection validationFailures) { Assert.Collection( validationFailures, failure => { Assert.Equal(expectedProperty, failure.PropertyName); Assert.Collection(failure.Errors, single => Assert.Equal(expectedError, single)); } ); }