Пример #1
0
            public void ShouldUpdateClosingDate(
                int oldClosingDateOffset,
                int newClosingDateOffset,
                bool expected)
            {
                // Arrange.
                var today = DateTime.Today;

                var detail = new ApprenticeshipApplicationDetail
                {
                    Vacancy = new ApprenticeshipSummary
                    {
                        ClosingDate = today.AddDays(oldClosingDateOffset)
                    }
                };

                var summary = new ApplicationStatusSummary
                {
                    ClosingDate = today.AddDays(newClosingDateOffset)
                };

                // Act.
                var actual = detail.UpdateApprenticeshipApplicationDetail(summary, _mockReadRepository.Object, _mockWriteRepository.Object);

                // Assert.
                actual.Should().Be(expected);
                detail.Vacancy.ClosingDate.Should().Be(summary.ClosingDate);
            }
Пример #2
0
        public void Update(
            ApprenticeshipApplicationDetail apprenticeshipApplication,
            ApplicationStatusSummary applicationStatusSummary)
        {
            var originalLegacyApplicationId = apprenticeshipApplication.LegacyApplicationId;
            var originalStatus               = apprenticeshipApplication.Status;
            var originalVacancyStatus        = apprenticeshipApplication.VacancyStatus;
            var originalClosingDate          = apprenticeshipApplication.Vacancy.ClosingDate;
            var originalUnsuccessfulReason   = apprenticeshipApplication.UnsuccessfulReason;
            var originalUnSuccessfulDateTime = apprenticeshipApplication.UnsuccessfulDateTime;

            // invoked because the status of the apprenticeshipApplication / vacancy *may* have changed
            if (apprenticeshipApplication.UpdateApprenticeshipApplicationDetail(applicationStatusSummary, _apprenticeshipApplicationReadRepository, _apprenticeshipApplicationWriteRepository))
            {
                const string format =
                    "Updating apprenticeship application (id='{0}', vacancy id='{1}', candidate='{2})" +
                    " from legacy application id='{3}' to '{4}'," +
                    " application status='{5}' to '{6}'," +
                    " vacancy status='{7}' to '{8}'," +
                    " closing date='{9}' to '{10}'," +
                    " unsuccessful reason='{11}' to '{12}'";

                _logger.Info(
                    format,
                    apprenticeshipApplication.EntityId,                      // 0
                    apprenticeshipApplication.Vacancy.Id,                    // 1
                    apprenticeshipApplication.CandidateDetails.EmailAddress, // 2

                    originalLegacyApplicationId,                             // 3
                    applicationStatusSummary.LegacyApplicationId,            // 4

                    originalStatus,                                          // 5
                    applicationStatusSummary.ApplicationStatus,              // 6

                    originalVacancyStatus,                                   // 7
                    applicationStatusSummary.VacancyStatus,                  // 8

                    originalClosingDate,                                     // 9
                    applicationStatusSummary.ClosingDate,                    // 10

                    originalUnsuccessfulReason,                              // 11
                    applicationStatusSummary.UnsuccessfulReason,             //12

                    originalUnSuccessfulDateTime,                            //13
                    applicationStatusSummary.UnsuccessfulDateTime);          // 14

                _apprenticeshipApplicationWriteRepository.Save(apprenticeshipApplication);
                _applicationStatusAlertStrategy.Send(originalStatus, applicationStatusSummary);
            }
        }
Пример #3
0
            public void ShouldUpdateApplicationStatus(
                ApplicationStatuses oldStatus,
                ApplicationStatuses newStatus,
                ApplicationStatusSummary.Source source,
                bool expected)
            {
                // Arrange.
                var detail = new ApprenticeshipApplicationDetail
                {
                    Status     = oldStatus,
                    IsArchived = true
                };

                var summary = new ApplicationStatusSummary
                {
                    ApplicationId     = Guid.Empty,
                    ApplicationStatus = newStatus
                };

                var ignoreOwnershipCheck = summary.UpdateSource == ApplicationStatusSummary.Source.Raa;

                _mockReadRepository.Setup(mock => mock.Get(detail.EntityId)).Returns(new ApprenticeshipApplicationDetail {
                    Status = newStatus
                });

                _mockWriteRepository.Setup(mock => mock
                                           .UpdateApplicationStatus(detail, newStatus, ignoreOwnershipCheck))
                .Returns(expected);

                // Act.
                var actual = detail.UpdateApprenticeshipApplicationDetail(summary, _mockReadRepository.Object, _mockWriteRepository.Object);

                // Assert.
                actual.Should().Be(expected);
                detail.IsArchived.Should().Be(!expected);
                detail.Status.Should().Be(summary.ApplicationStatus);

                _mockWriteRepository.Verify(mock => mock
                                            .UpdateApplicationStatus(detail, newStatus, ignoreOwnershipCheck),
                                            Times.Exactly(expected ? 1 : 0));
            }
Пример #4
0
            public void ShouldUpdateLegacyApplicationId(int oldId, int newId, bool expected)
            {
                // Arrange.
                var detail = new ApprenticeshipApplicationDetail
                {
                    LegacyApplicationId = oldId
                };

                var summary = new ApplicationStatusSummary
                {
                    ApplicationId       = Guid.Empty,
                    LegacyApplicationId = newId
                };

                // Act.
                var actual = detail.UpdateApprenticeshipApplicationDetail(summary, _mockReadRepository.Object, _mockWriteRepository.Object);

                // Assert.
                actual.Should().Be(expected);
                detail.LegacyApplicationId.Should().Be(summary.LegacyApplicationId);
            }
Пример #5
0
            public void ShouldUpdateUnsuccessfulReason(string oldReason, string newReason, bool expected)
            {
                // Arrange.
                var detail = new ApprenticeshipApplicationDetail
                {
                    Status             = ApplicationStatuses.Unsuccessful,
                    UnsuccessfulReason = oldReason
                };

                var summary = new ApplicationStatusSummary
                {
                    ApplicationId      = Guid.Empty,
                    ApplicationStatus  = ApplicationStatuses.Unsuccessful,
                    UnsuccessfulReason = newReason
                };

                // Act.
                var actual = detail.UpdateApprenticeshipApplicationDetail(summary, _mockReadRepository.Object, _mockWriteRepository.Object);

                // Assert.
                actual.Should().Be(expected);
                detail.UnsuccessfulReason.Should().Be(summary.UnsuccessfulReason);
            }
Пример #6
0
            public void ShouldUpdateVacancyStatus(
                VacancyStatuses oldStatus,
                VacancyStatuses newStatus,
                bool expected)
            {
                // Arrange.
                var detail = new ApprenticeshipApplicationDetail
                {
                    VacancyStatus = oldStatus
                };

                var summary = new ApplicationStatusSummary
                {
                    VacancyStatus = newStatus
                };

                // Act.
                var actual = detail.UpdateApprenticeshipApplicationDetail(summary, _mockReadRepository.Object, _mockWriteRepository.Object);

                // Assert.
                actual.Should().Be(expected);
                detail.VacancyStatus.Should().Be(summary.VacancyStatus);
            }