public void ShouldReturnExpectedResult_WhenGivenInputAndSourceModels( string inputJson, string sourceJson, object arrayValidatorReturns, object objectValidatorReturns, IExceptionAssertion expected) { // Arrange using var inputJsonDoc = JsonDocument.Parse(inputJson ?? "{}"); using var sourceJsonDoc = JsonDocument.Parse(sourceJson ?? "{}"); var inputStoreModel = string.IsNullOrEmpty(inputJson) ? null : new StoreModel("/input", inputJsonDoc.RootElement); var sourceStoreModel = string.IsNullOrEmpty(sourceJson) ? null : new StoreModel("/source", sourceJsonDoc.RootElement); var jsonArrayValidator = GetJsonArrayValidatorMock((ValidationResult)arrayValidatorReturns); var jsonObjectValidator = GetJsonObjectValidatorMock((ValidationResult)objectValidatorReturns); var storeValidationService = new StoreModelValidator(jsonArrayValidator.Object, jsonObjectValidator.Object); // Act Action result = () => storeValidationService.Validate(inputStoreModel, sourceStoreModel); // Assert expected.Assert(result); }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { StoreModelValidator validator = new StoreModelValidator(); FluentValidation.Results.ValidationResult result = validator.Validate(this); return(result.Errors.Select(item => new ValidationResult(item.ErrorMessage, new[] { item.PropertyName }))); }