public void ShouldShowWageRangeInputsWhenWageRangeIsSelected() { var details = new FurtherVacancyDetails(); var viewModel = new Fixture().Build <FurtherVacancyDetailsViewModel>() .With(v => v.Status, VacancyStatus.Draft) .With(v => v.Wage, new WageViewModel() { Classification = WageClassification.Custom, CustomType = CustomWageType.Ranged, AmountLowerBound = 200, AmountUpperBound = 500, Unit = WageUnit.Weekly }) .With(v => v.WageUnits, ApprenticeshipVacancyConverter.GetWageUnits()) .Create(); var view = details.RenderAsHtml(viewModel); view.GetElementbyId("custom-wage").Attributes["checked"].Value.Should().Be("checked"); view.GetElementbyId("custom-wage-fixed").Attributes["checked"]?.Value.Should().NotBe("checked"); view.GetElementbyId("custom-wage-range").Attributes["checked"].Value.Should().Be("checked"); view.GetElementbyId("Wage_AmountLowerBound").Should().NotBeNull(); view.GetElementbyId("Wage_AmountLowerBound").Attributes["value"].Value.Should().Be("200"); view.GetElementbyId("Wage_AmountUpperBound").Attributes["value"].Value.Should().Be("500"); view.GetElementbyId("Wage_RangeUnit").Should().NotBeNull(); view.GetElementbyId("Wage_RangeUnit") .ChildNodes.Any(cn => cn.Attributes["value"].Value == WageUnit.Weekly.ToString()).Should().BeTrue(); }
public void ShouldShowTextDropdownAndReasonBoxWhenChooseTextIsSelected(PresetText wageType) { var details = new FurtherVacancyDetails(); var viewModel = new Fixture().Build <FurtherVacancyDetailsViewModel>() .With(v => v.Status, VacancyStatus.Draft) .With(v => v.Wage, new WageViewModel() { Classification = WageClassification.LegacyText, PresetText = wageType }) .With(v => v.WageTextPresets, ApprenticeshipVacancyConverter.GetWageTextPresets()) .Create(); var view = details.RenderAsHtml(viewModel); //TODO: Our HTML is invalid. This causes the browser to fail to set the "checked" property. //A quick W3C check on this page resulted in 136 errors and 8 warnings. //This is not good at all. The input appears to be selected but does not have the property. //So, we can't verify as we should. //view.GetElementbyId("preset-text").Attributes["checked"].Value.Should().Be("checked"); view.GetElementbyId("Wage_PresetText").Should().NotBeNull(); view.GetElementbyId("Wage_PresetText").ChildNodes.Any(x => x.Attributes.Contains("selected") && x.Attributes["selected"].Value == "selected").Should().BeTrue(); view.GetElementbyId("Wage_PresetText").ChildNodes.Single(x => x.Attributes.Contains("selected") && x.Attributes["selected"].Value == "selected").Attributes["value"].Value.Should().Be(((int)wageType).ToString()); view.GetElementbyId("Wage_WageTypeReason").Should().NotBeNull(); }
public void ShouldShowSaveAndExitButton() { var details = new VacancySummary(); var viewModel = new FurtherVacancyDetailsViewModel { WageUnits = ApprenticeshipVacancyConverter.GetWageUnits(), WageTextPresets = ApprenticeshipVacancyConverter.GetWageTextPresets(), DurationTypes = ApprenticeshipVacancyConverter.GetDurationTypes(VacancyType.Apprenticeship) }; var view = details.RenderAsHtml(viewModel); view.GetElementbyId("vacancySummaryAndExit").Should().NotBeNull("Should exists a save and exit button"); }
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 MediatorResponse <FurtherVacancyDetailsViewModel> UpdateVacancy(FurtherVacancyDetailsViewModel viewModel) { var validationResult = _vacancySummaryViewModelServerValidator.Validate(viewModel, ruleSet: RuleSets.ErrorsAndWarnings); if (!validationResult.IsValid && (!viewModel.AcceptWarnings || validationResult.Errors.Any(e => (ValidationType?)e.CustomState != ValidationType.Warning))) { viewModel.WageUnits = ApprenticeshipVacancyConverter.GetWageUnits(); viewModel.WageTextPresets = ApprenticeshipVacancyConverter.GetWageTextPresets(); viewModel.DurationTypes = ApprenticeshipVacancyConverter.GetDurationTypes(viewModel.VacancyType); if (validationResult.Errors.All(e => (ValidationType?)e.CustomState == ValidationType.Warning)) { viewModel.AcceptWarnings = true; } return(GetMediatorResponse(VacancyMediatorCodes.UpdateVacancy.FailedValidation, viewModel, validationResult)); } var updatedViewModel = _vacancyQaProvider.UpdateVacancyWithComments(viewModel); return(ReturnResult(updatedViewModel)); }