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);
        }
Beispiel #2
0
        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);
        }