public async Task Then_If_Not_Valid_Then_Returns_Response_With_Errors( EntityValidationError entityValidationError, CreateVacancyCommand command, [Frozen] Mock <IRecruitVacancyClient> recruitVacancyClient, CreateVacancyCommandHandler handler) { command.ValidateOnly = false; var entityValidationResult = new EntityValidationResult { Errors = new List <EntityValidationError> { entityValidationError } }; recruitVacancyClient.Setup(x => x.Validate(It.IsAny <Vacancy>(), VacancyRuleSet.All)) .Returns(entityValidationResult); var actual = await handler.Handle(command, CancellationToken.None); actual.ValidationErrors.Should().BeEquivalentTo( entityValidationResult.Errors.Select(error => new DetailedValidationError { Field = error.PropertyName, Message = error.ErrorMessage })); actual.ResultCode.Should().Be(ResponseCode.InvalidRequest); }
public static int?GetIndexPosition(this EntityValidationError error) { var start = error.PropertyName.IndexOf(PositionStart) + 1; if (start == 0) { return(null); } var end = error.PropertyName.IndexOf(PositionEnd, start); if (end == -1) { return(null); } if (int.TryParse(error.PropertyName.Substring(start, end - start), out var position)) { return(position); } return(null); }
private void AddProviderBlockedErrorToModelState(TrainingProviderSelectionType selectionType, EntityValidationError error) { var errorKey = selectionType == TrainingProviderSelectionType.Ukprn ? nameof(SelectTrainingProviderEditModel.Ukprn) : nameof(SelectTrainingProviderEditModel.TrainingProviderSearch); ModelState.AddModelError(errorKey, error.ErrorMessage); }