public void ClosingDateTwoWeeksAway_PossibleStartDateAfterClosingDate() { var today = DateTime.Today; var viewModel = new FurtherVacancyDetailsViewModel { VacancyDatesViewModel = new VacancyDatesViewModel { ClosingDate = new DateViewModel(today.AddDays(14)), PossibleStartDate = new DateViewModel(today.AddDays(15)) }, Wage = new WageViewModel() }; var vacancyViewModel = new VacancyViewModelBuilder().With(viewModel).Build(); _validator.Validate(viewModel, ruleSet: RuleSet); _aggregateValidator.Validate(vacancyViewModel); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSet); _validator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyDatesViewModel.ClosingDate, viewModel, RuleSet); _validator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyDatesViewModel.PossibleStartDate, viewModel, RuleSet); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.VacancyDatesViewModel.ClosingDate, vacancyViewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.VacancyDatesViewModel.ClosingDate, vacancyViewModel, RuleSet); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.VacancyDatesViewModel.PossibleStartDate, vacancyViewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.VacancyDatesViewModel.PossibleStartDate, vacancyViewModel, RuleSet); }
public MediatorResponse <FurtherVacancyDetailsViewModel> GetVacancySummaryViewModel(int vacancyReferenceNumber) { var vacancyViewModel = _vacancyQaProvider.GetVacancySummaryViewModel(vacancyReferenceNumber); var validationResult = _vacancySummaryViewModelServerValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings); if (!validationResult.IsValid) { vacancyViewModel.WageUnits = ApprenticeshipVacancyConverter.GetWageUnits(); vacancyViewModel.WageTextPresets = ApprenticeshipVacancyConverter.GetWageTextPresets(); vacancyViewModel.DurationTypes = ApprenticeshipVacancyConverter.GetDurationTypes(vacancyViewModel.VacancyType); return(GetMediatorResponse(VacancyMediatorCodes.GetVacancySummaryViewModel.FailedValidation, vacancyViewModel, validationResult)); } return(GetMediatorResponse(VacancyMediatorCodes.GetVacancySummaryViewModel.Ok, vacancyViewModel)); }
public void DateYearValidation(bool expectValid) { var currentYear = DateTime.UtcNow.Year; var year = expectValid ? currentYear : currentYear - 2000; //Either 20XX or XX //Arrange var view = new ValidationSummary(); var viewModel = new ModelStateDictionary(); var viewModelToValidate = new FurtherVacancyDetailsViewModel { VacancyDatesViewModel = new VacancyDatesViewModel { ClosingDate = new DateViewModel { Day = 1, Month = 2, Year = year }, PossibleStartDate = new DateViewModel { Day = 1, Month = 2, Year = year } }, Wage = new WageViewModel() { CustomType = CustomWageType.Fixed } }; var validator = new VacancySummaryViewModelServerValidator(); var results = validator.Validate(viewModelToValidate, ruleSet: RuleSets.ErrorsAndWarnings); results.AddToModelStateWithSeverity(viewModel, string.Empty); //Act var document = new ValidationSummaryDocument(view.RenderAsHtml(viewModel)); var closingDateYearError = document.Errors.FirstOrDefault(n => n.FirstChild.Attributes["href"].Value == "#vacancydatesviewmodel_closingdate_year"); var possibleStartDateError = document.Errors.FirstOrDefault(n => n.FirstChild.Attributes["href"].Value == "#vacancydatesviewmodel_possiblestartdate_year"); //Assert if (expectValid) { closingDateYearError.Should().BeNull(); possibleStartDateError.Should().BeNull(); } else { closingDateYearError.Should().NotBeNull(); possibleStartDateError.Should().NotBeNull(); } }
public void RuleFour_HoursPerWeek16to30_And_DurationGreaterThanOrEqualTo12months_And_ExpectedDurationGreaterThanOrEqualToMinimumDuration(decimal hoursPerWeek, int expectedDuration, DurationType durationType) { var viewModel = new FurtherVacancyDetailsViewModel { Wage = new WageViewModel() { CustomType = CustomWageType.Fixed, HoursPerWeek = hoursPerWeek }, Duration = expectedDuration, DurationType = durationType }; var vacancyViewModel = new VacancyViewModelBuilder().With(viewModel).Build(); _validator.Validate(viewModel, ruleSet: RuleSet); _aggregateValidator.Validate(vacancyViewModel); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSet); _validator.ShouldNotHaveValidationErrorFor(vm => vm.Wage, vm => vm.Wage.HoursPerWeek, viewModel, RuleSet); _validator.ShouldNotHaveValidationErrorFor(vm => vm.Duration, viewModel, RuleSet); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.Wage, vm => vm.FurtherVacancyDetailsViewModel.Wage.HoursPerWeek, vacancyViewModel, RuleSet); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel. Duration, vacancyViewModel, RuleSet); }
public void RuleOne_HoursPerWeek30to40_And_DurationGreaterOrEqualTo12months(decimal hoursPerWeek, int expectedDuration, DurationType durationType) { var viewModel = new FurtherVacancyDetailsViewModel { Wage = new WageViewModel() { HoursPerWeek = hoursPerWeek }, Duration = expectedDuration, DurationType = durationType }; var vacancyViewModel = new VacancyViewModelBuilder().With(viewModel).Build(); _validator.Validate(viewModel, ruleSet: RuleSet); _aggregateValidator.Validate(vacancyViewModel); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSet); _validator.ShouldNotHaveValidationErrorFor(vm => vm.Wage, vm => vm.Wage.HoursPerWeek, viewModel, RuleSet); _validator.ShouldNotHaveValidationErrorFor(vm => vm.Duration, viewModel, RuleSet); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.Wage, vm => vm.FurtherVacancyDetailsViewModel.Wage.HoursPerWeek, vacancyViewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.Wage, vm => vm.FurtherVacancyDetailsViewModel.Wage.HoursPerWeek, vacancyViewModel, RuleSet); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.Duration, vacancyViewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.FurtherVacancyDetailsViewModel, vm => vm.FurtherVacancyDetailsViewModel.Duration, vacancyViewModel, RuleSet); }