Пример #1
0
        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 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));
        }