示例#1
0
        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
            }));
        }
示例#3
0
        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);
        }