public void ShouldUpdateTheVacancyIfWeAcceptTheWarningsAndTheyAreEqualFromThePreviousOnes(VacancyApplicationsState state, string expectedCode) { const int vacancyReferenceNumber = 1; const int oldWarningHash = 128335101; var closingDate = new DateViewModel(DateTime.Now.AddDays(20)); var possibleStartDate = new DateViewModel(DateTime.Now.AddDays(21)); var viewModel = new VacancyViewModelBuilder().With(new VacancyDatesViewModel { ClosingDate = closingDate, PossibleStartDate = possibleStartDate }).BuildValid(VacancyStatus.Live, VacancyType.Apprenticeship).FurtherVacancyDetailsViewModel; viewModel.VacancyReferenceNumber = vacancyReferenceNumber; viewModel.WarningsHash = oldWarningHash; viewModel.VacancyApplicationsState = state; var mediator = GetMediator(); VacancyPostingProvider.Setup(p => p.UpdateVacancyDates(It.IsAny <FurtherVacancyDetailsViewModel>())).Returns(viewModel); var result = mediator.UpdateVacancyDates(viewModel, true); result.Code.Should().Be(expectedCode); VacancyPostingProvider.Verify( p => p.UpdateVacancyDates( It.Is <FurtherVacancyDetailsViewModel>( v => v.VacancyReferenceNumber == vacancyReferenceNumber && v.VacancyDatesViewModel.ClosingDate == closingDate && v.VacancyDatesViewModel.PossibleStartDate == possibleStartDate))); }
public void ShouldCreateTheVacancyIfItDoesnExist() { // Arrange const string ukprn = "1234"; var vacancyGuid = Guid.NewGuid(); const int vacanyPartyId = 1; const bool isEmployerLocationMainApprenticeshipLocation = true; int? numberOfPositions = 2; const string employerWebsiteUrl = "www.google.com"; const string employerDescription = "description"; var viewModel = new VacancyOwnerRelationshipViewModel { IsEmployerLocationMainApprenticeshipLocation = isEmployerLocationMainApprenticeshipLocation, NumberOfPositions = numberOfPositions, ProviderSiteId = 42, Employer = new EmployerViewModel { EmployerId = 7 }, EmployerDescription = employerDescription, EmployerWebsiteUrl = employerWebsiteUrl, VacancyOwnerRelationshipId = vacanyPartyId, VacancyGuid = vacancyGuid, IsAnonymousEmployer = false }; ProviderProvider.Setup(p => p.ConfirmVacancyOwnerRelationship(viewModel)).Returns(viewModel); // Act. var mediator = GetMediator(); mediator.ConfirmEmployer(viewModel, ukprn); // Assert. VacancyPostingProvider.Verify(p => p.CreateVacancy(new VacancyMinimumData { Ukprn = ukprn, VacancyGuid = vacancyGuid, VacancyOwnerRelationshipId = vacanyPartyId, IsEmployerLocationMainApprenticeshipLocation = isEmployerLocationMainApprenticeshipLocation, NumberOfPositions = numberOfPositions, EmployerWebsiteUrl = employerWebsiteUrl, EmployerDescription = employerDescription })); }
public void ShouldMergeRequestAndExistingFurtherVacancyDetails() { const int vacancyReferenceNumber = 1; var viewModel = new FurtherVacancyDetailsViewModel { VacancyReferenceNumber = vacancyReferenceNumber, Wage = new WageViewModel() { CustomType = CustomWageType.Fixed, Amount = 99, AmountLowerBound = null, AmountUpperBound = null, Text = null, Unit = WageUnit.Weekly, HoursPerWeek = 30 }, VacancyDatesViewModel = new VacancyDatesViewModel { ClosingDate = new DateViewModel(DateTime.Now.AddDays(7)), PossibleStartDate = new DateViewModel(DateTime.Now.AddDays(7)) } }; var existingViewModel = new VacancyViewModelBuilder().With(new WageViewModel() { Type = WageType.NationalMinimum, Classification = WageClassification.NationalMinimum, CustomType = CustomWageType.NotApplicable, Amount = null, AmountLowerBound = null, AmountUpperBound = null, Text = null, Unit = WageUnit.Weekly, HoursPerWeek = 37.5m }).BuildValid(VacancyStatus.Live, VacancyType.Apprenticeship).FurtherVacancyDetailsViewModel; VacancyPostingProvider.Setup(p => p.GetVacancySummaryViewModel(vacancyReferenceNumber)).Returns(existingViewModel); var mediator = GetMediator(); var result = mediator.UpdateVacancyDates(viewModel, false); VacancyPostingProvider.Verify(p => p.GetVacancySummaryViewModel(vacancyReferenceNumber)); result.ViewModel.Wage.Type.Should().Be(viewModel.Wage.Type); result.ViewModel.Wage.Amount.Should().Be(viewModel.Wage.Amount); result.ViewModel.Wage.Text.Should().Be(existingViewModel.Wage.Text); result.ViewModel.Wage.Unit.Should().Be(viewModel.Wage.Unit); result.ViewModel.Wage.HoursPerWeek.Should().Be(existingViewModel.Wage.HoursPerWeek); result.ViewModel.VacancyDatesViewModel.ClosingDate.Should().Be(viewModel.VacancyDatesViewModel.ClosingDate); result.ViewModel.VacancyDatesViewModel.PossibleStartDate.Should().Be(viewModel.VacancyDatesViewModel.PossibleStartDate); }