public async Task POST_ReviewPageAnswers_When_Invalid_does_not_submit_ModeratorPageReviewOutcome() { int sequenceNumber = 4; int sectionNumber = 2; string pageId = "4200"; var viewModel = new ModeratorReviewAnswersViewModel { ApplicationId = _applicationId, SequenceNumber = sequenceNumber, SectionNumber = sectionNumber, PageId = pageId, Status = ModeratorPageReviewStatus.Pass, OptionPassText = "test" }; var command = new SubmitModeratorPageAnswerCommand(viewModel); _sectionReviewOrchestrator.Setup(x => x.GetReviewAnswersViewModel(It.IsAny <GetReviewAnswersRequest>())).ReturnsAsync(viewModel); var error = new ValidationErrorDetail { Field = "Status", ErrorMessage = "Error" }; var validationResponse = new ValidationResponse { Errors = new List <ValidationErrorDetail> { error } }; _moderatorPageValidator.Setup(x => x.Validate(command)).ReturnsAsync(validationResponse); // act var result = await _controller.ReviewPageAnswers(_applicationId, sequenceNumber, sectionNumber, pageId, command) as ViewResult; var actualViewModel = result?.Model as ReviewAnswersViewModel; // assert Assert.That(result, Is.Not.Null); Assert.That(actualViewModel, Is.Not.Null); Assert.That(actualViewModel, Is.SameAs(viewModel)); _moderationApiClient.Verify(x => x.SubmitModeratorPageReviewOutcome(command.ApplicationId, command.SequenceNumber, command.SectionNumber, command.PageId, _controller.User.UserId(), _controller.User.UserDisplayName(), command.Status, command.ReviewComment), Times.Never); }
public static List <ValidationErrorDetail> ValidateDateOfBirth(string month, string year, string fieldPrefix) { var dobMonth = new Answer { Value = month }; var dobYear = new Answer { Value = year }; var errorMessages = new List <ValidationErrorDetail>(); if (dobMonth == null && dobYear == null) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Month", ErrorMessage = MissingDateOfBirthErrorMessage }; errorMessages.Add(errorMessage); } else { if (dobMonth == null) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Month", ErrorMessage = InvalidIncompleteDateOfBirthErrorMessage }; errorMessages.Add(errorMessage); } if (dobYear == null) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Year", ErrorMessage = InvalidIncompleteDateOfBirthErrorMessage }; errorMessages.Add(errorMessage); } if (dobMonth != null) { int monthValue = 0; int.TryParse(dobMonth.Value, out monthValue); if (monthValue < 1 || monthValue > 12) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Month", ErrorMessage = InvalidIncompleteDateOfBirthErrorMessage }; errorMessages.Add(errorMessage); return(errorMessages); } } if (dobYear != null) { int yearValue = 0; int.TryParse(dobYear.Value, out yearValue); if (yearValue <= 0) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Year", ErrorMessage = InvalidIncompleteDateOfBirthErrorMessage }; errorMessages.Add(errorMessage); return(errorMessages); } if (yearValue > 0 && yearValue < 1000) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Year", ErrorMessage = DateOfBirthYearLengthErrorMessage }; errorMessages.Add(errorMessage); return(errorMessages); } if (yearValue > DateTime.Now.Year) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Year", ErrorMessage = DateOfBirthInFutureErrorMessage }; errorMessages.Add(errorMessage); return(errorMessages); } } if (dobMonth != null && dobYear != null) { int monthValue = 0; int.TryParse(dobMonth.Value, out monthValue); int yearValue = 0; int.TryParse(dobYear.Value, out yearValue); if (monthValue == DateTime.Now.Month && yearValue == DateTime.Now.Year) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Month", ErrorMessage = DateOfBirthInFutureErrorMessage }; errorMessages.Add(errorMessage); } else if (monthValue > DateTime.Now.Month && yearValue == DateTime.Now.Year || monthValue == 1 && yearValue == (DateTime.Now.Year + 1)) { var errorMessage = new ValidationErrorDetail { Field = fieldPrefix + "Month", ErrorMessage = DateOfBirthInFutureErrorMessage }; errorMessages.Add(errorMessage); } } } return(errorMessages); }