public void FutureProspectsRequired(string futureProspects, bool expectValid) { var viewModel = new VacancyRequirementsProspectsViewModel { FutureProspects = futureProspects, VacancySource = VacancySource.Raa }; var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build(); _validator.Validate(viewModel); _aggregateValidator.Validate(vacancyViewModel); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings); if (expectValid) { _validator.ShouldNotHaveValidationErrorFor(vm => vm.FutureProspects, viewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel, RuleSets.Errors); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel, RuleSets.Warnings); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel, RuleSets.ErrorsAndWarnings); } else { _validator.ShouldHaveValidationErrorFor(vm => vm.FutureProspects, viewModel); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel, RuleSets.Errors); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel, RuleSets.Warnings); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.FutureProspects, vacancyViewModel, RuleSets.ErrorsAndWarnings); } }
public ActionResult RequirementsAndProspects(VacancyRequirementsProspectsViewModel viewModel) { var response = _vacancyMediator.UpdateVacancy(viewModel); ModelState.Clear(); switch (response.Code) { case VacancyMediatorCodes.UpdateVacancy.FailedValidation: response.ValidationResult.AddToModelState(ModelState, string.Empty); return(View(response.ViewModel)); case VacancyMediatorCodes.UpdateVacancy.Ok: return(RedirectToRoute(ManagementRouteNames.ReviewVacancy, new { vacancyReferenceNumber = response.ViewModel.VacancyReferenceNumber })); case VacancyMediatorCodes.UpdateVacancy.InvalidVacancy: SetUserMessage(response.Message); return(RedirectToRoute(ManagementRouteNames.Dashboard)); default: throw new InvalidMediatorCodeException(response.Code); } }
public void ThingsToConsiderNotRequired(string thingsToConsider, bool expectValid) { var viewModel = new VacancyRequirementsProspectsViewModel { ThingsToConsider = thingsToConsider }; var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build(); _validator.Validate(viewModel); _aggregateValidator.Validate(vacancyViewModel); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings); if (expectValid) { _validator.ShouldNotHaveValidationErrorFor(vm => vm.ThingsToConsider, viewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel, RuleSets.Errors); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel, RuleSets.Warnings); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel, RuleSets.ErrorsAndWarnings); } else { _validator.ShouldHaveValidationErrorFor(vm => vm.ThingsToConsider, viewModel); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel, RuleSets.Errors); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel, RuleSets.Warnings); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.ThingsToConsider, vacancyViewModel, RuleSets.ErrorsAndWarnings); } }
public void TraineeshipDesiredQualificationsRequired(string desiredQualifications, bool expectValid) { var viewModel = new VacancyRequirementsProspectsViewModel { DesiredQualifications = desiredQualifications, VacancyType = VacancyType.Traineeship, VacancySource = VacancySource.Raa }; var vacancyViewModel = new VacancyViewModelBuilder().With(_furtherDetailsViewModel).With(viewModel).Build(); _validator.Validate(viewModel); _aggregateValidator.Validate(vacancyViewModel); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Errors); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.Warnings); _aggregateValidator.Validate(vacancyViewModel, ruleSet: RuleSets.ErrorsAndWarnings); if (expectValid) { _validator.ShouldNotHaveValidationErrorFor(vm => vm.DesiredQualifications, viewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel, RuleSets.Errors); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel, RuleSets.Warnings); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel, RuleSets.ErrorsAndWarnings); } else { _validator.ShouldHaveValidationErrorFor(vm => vm.DesiredQualifications, viewModel); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel, RuleSets.Errors); _aggregateValidator.ShouldNotHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel, RuleSets.Warnings); _aggregateValidator.ShouldHaveValidationErrorFor(vm => vm.VacancyRequirementsProspectsViewModel, vm => vm.VacancyRequirementsProspectsViewModel.DesiredQualifications, vacancyViewModel, RuleSets.ErrorsAndWarnings); } }
public void ShouldReturnOnlineVacancyOkIfCalledFromTheSaveAndContinueActionAndTheVacancyIsAnOnlineOne() { var newVacancyViewModel = new VacancyViewModel { NewVacancyViewModel = new NewVacancyViewModel { OfflineVacancy = false } }; var vacancyRequirementsAndProspects = new VacancyRequirementsProspectsViewModel(); VacancyPostingProvider.Setup(p => p.GetVacancy(_viewModel.VacancyReferenceNumber)) .Returns(newVacancyViewModel); VacancyPostingProvider.Setup(p => p.UpdateVacancy(It.IsAny <VacancyRequirementsProspectsViewModel>())) .Returns(vacancyRequirementsAndProspects); var mediator = GetMediator(); var result = mediator.UpdateVacancy(_viewModel); result.Should() .Match( (MediatorResponse <VacancyRequirementsProspectsViewModel> p) => p.Code == VacancyPostingMediatorCodes.UpdateVacancy.OnlineVacancyOk); }
public void DefaultShouldNotHaveAnyValidationErrors() { var viewModel = new VacancyRequirementsProspectsViewModel(); var result = _validator.Validate(viewModel); result.IsValid.Should().BeTrue(); }
public void ShouldShowSaveAndExitButton() { var details = new VacancyRequirementsProspects(); var viewModel = new VacancyRequirementsProspectsViewModel { }; var view = details.RenderAsHtml(viewModel); view.GetElementbyId("VacancyRequirementsProspectsAndExit").Should().NotBeNull("Should exists a save and exit button"); }
private static VacancyRequirementsProspectsViewModel GetVacancyViewModelWithErrorsAndWarningsRequirementsAndProspects( int vacancyReferenceNumber) { var viewModel = new VacancyRequirementsProspectsViewModel { DesiredQualifications = null, // Error DesiredSkills = "desired skills", FutureProspects = "future prospects", PersonalQualities = "personal qualities", ThingsToConsider = "things to consider", VacancyReferenceNumber = vacancyReferenceNumber }; return(viewModel); }
public void PersonalQualitiesInvalidCharacters(string personalQualities, bool expectValid) { var viewModel = new VacancyRequirementsProspectsViewModel { PersonalQualities = personalQualities }; _validator.Validate(viewModel); if (expectValid) { _validator.ShouldNotHaveValidationErrorFor(vm => vm.PersonalQualities, viewModel); } else { _validator.ShouldHaveValidationErrorFor(vm => vm.PersonalQualities, viewModel); } }
public void FutureProspectsInvalidCharacters(string futureProspects, bool expectValid) { var viewModel = new VacancyRequirementsProspectsViewModel { FutureProspects = futureProspects }; _validator.Validate(viewModel); if (expectValid) { _validator.ShouldNotHaveValidationErrorFor(vm => vm.FutureProspects, viewModel); } else { _validator.ShouldHaveValidationErrorFor(vm => vm.FutureProspects, viewModel); } }
public void DesiredSkillsInvalidCharacters(string desiredSkills, bool expectValid) { var viewModel = new VacancyRequirementsProspectsViewModel { DesiredSkills = desiredSkills }; _validator.Validate(viewModel); if (expectValid) { _validator.ShouldNotHaveValidationErrorFor(vm => vm.DesiredSkills, viewModel); } else { _validator.ShouldHaveValidationErrorFor(vm => vm.DesiredSkills, viewModel); } }
public void ThingsToConsiderInvalidCharacters(string thingsToConsider, bool expectValid) { var viewModel = new VacancyRequirementsProspectsViewModel { ThingsToConsider = thingsToConsider }; _validator.Validate(viewModel); if (expectValid) { _validator.ShouldNotHaveValidationErrorFor(vm => vm.ThingsToConsider, viewModel); } else { _validator.ShouldHaveValidationErrorFor(vm => vm.ThingsToConsider, viewModel); } }
public static VacancyRequirementsProspectsViewModel ConvertToVacancyRequirementsProspectsViewModel(this Vacancy vacancy) { var vacancyViewModel = new VacancyRequirementsProspectsViewModel { VacancyReferenceNumber = vacancy.VacancyReferenceNumber, DesiredSkills = vacancy.DesiredSkills, DesiredSkillsComment = vacancy.DesiredSkillsComment, FutureProspects = vacancy.FutureProspects, FutureProspectsComment = vacancy.FutureProspectsComment, PersonalQualities = vacancy.PersonalQualities, PersonalQualitiesComment = vacancy.PersonalQualitiesComment, ThingsToConsider = vacancy.ThingsToConsider, ThingsToConsiderComment = vacancy.ThingsToConsiderComment, DesiredQualifications = vacancy.DesiredQualifications, DesiredQualificationsComment = vacancy.DesiredQualificationsComment, Status = vacancy.Status, VacancyType = vacancy.VacancyType, VacancySource = vacancy.VacancySource }; return(vacancyViewModel); }
public void ShouldReturnOKIfTheUserCanLockTheVacancy() { //Arrange const string ukprn = "ukprn"; //const int QAVacancyTimeout = 10; const string userName = "******"; var utcNow = DateTime.UtcNow; const int vacancyReferenceNumber = 1; const string aString = "aString"; const int autoSaveTimeoutInSeconds = 60; var sectorList = new List <Sector> { new Fixture().Build <Sector>().Create() }; var viewModel = new VacancyRequirementsProspectsViewModel { VacancyReferenceNumber = vacancyReferenceNumber, DesiredQualifications = aString, AutoSaveTimeoutInSeconds = autoSaveTimeoutInSeconds }; var vacancy = new Fixture().Build <Vacancy>() .With(av => av.VacancyReferenceNumber, vacancyReferenceNumber) .With(av => av.DesiredQualifications, aString) .Create(); var configurationService = new Mock <IConfigurationService>(); configurationService.Setup(x => x.Get <CommonWebConfiguration>()) .Returns(new CommonWebConfiguration { BlacklistedCategoryCodes = "" }); configurationService.Setup(x => x.Get <RecruitWebConfiguration>()) .Returns(new RecruitWebConfiguration { AutoSaveTimeoutInSeconds = autoSaveTimeoutInSeconds }); var referenceDataService = new Mock <IReferenceDataService>(); referenceDataService.Setup(m => m.GetSectors()).Returns(sectorList); var providerService = new Mock <IProviderService>(); providerService.Setup(ps => ps.GetProvider(ukprn, true)).Returns(new Provider()); var vacancyPostingService = new Mock <IVacancyPostingService>(); var currentUserService = new Mock <ICurrentUserService>(); currentUserService.Setup(cus => cus.CurrentUserName).Returns(userName); var dateTimeService = new Mock <IDateTimeService>(); dateTimeService.Setup(dts => dts.UtcNow).Returns(utcNow); var vacancylockingService = new Mock <IVacancyLockingService>(); vacancylockingService.Setup(vls => vls.IsVacancyAvailableToQABy(userName, vacancy)).Returns(true); //Arrange: get AV, update retrieved AV with NVVM, save modified AV returning same modified AV, map AV to new NVVM with same properties as input vacancyPostingService.Setup( vps => vps.GetVacancyByReferenceNumber(vacancyReferenceNumber)).Returns(vacancy); vacancyPostingService.Setup(vps => vps.UpdateVacancy(It.IsAny <Vacancy>())).Returns((Vacancy av) => av); var mapper = new Mock <IMapper>(); mapper.Setup(m => m.Map <Vacancy, VacancyRequirementsProspectsViewModel>(It.IsAny <Vacancy>())) .Returns((Vacancy av) => viewModel); var vacancyProvider = new VacancyProviderBuilder().With(vacancyPostingService) .With(providerService) .With(configurationService) .With(referenceDataService) .With(mapper) .With(currentUserService) .With(dateTimeService) .With(vacancylockingService) .Build(); var expectedResult = new QAActionResult <VacancyRequirementsProspectsViewModel>(QAActionResultCode.Ok, viewModel); //Act var result = vacancyProvider.UpdateVacancyWithComments(viewModel); //Assert vacancyPostingService.Verify( vps => vps.GetVacancyByReferenceNumber(viewModel.VacancyReferenceNumber), Times.Once); vacancyPostingService.Verify( vps => vps.UpdateVacancy( It.Is <Vacancy>(av => av.VacancyReferenceNumber == viewModel.VacancyReferenceNumber && av.QAUserName == userName && av.DateStartedToQA == utcNow))); result.ShouldBeEquivalentTo(expectedResult); }
public VacancyViewModelBuilder With(VacancyRequirementsProspectsViewModel vacancyRequirementsProspectsViewModel) { _vacancyRequirementsProspectsViewModel = vacancyRequirementsProspectsViewModel; return(this); }
public MediatorResponse <VacancyRequirementsProspectsViewModel> UpdateVacancy(VacancyRequirementsProspectsViewModel viewModel) { var validationResult = _vacancyRequirementsProspectsViewModelServerValidator.Validate(viewModel); if (!validationResult.IsValid) { return(GetMediatorResponse(VacancyMediatorCodes.UpdateVacancy.FailedValidation, viewModel, validationResult)); } var updatedViewModel = _vacancyQaProvider.UpdateVacancyWithComments(viewModel); return(ReturnResult(updatedViewModel)); }