public async Task Then_Maps_Apprenticeship_To_ApprenticeshipDetails(
            Apprenticeship source,
            decimal cost,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            source.PriceHistory = new List <PriceHistory> {
                new PriceHistory
                {
                    ApprenticeshipId = source.Id,
                    Cost             = cost,
                    ToDate           = null,
                    FromDate         = DateTime.UtcNow.AddMonths(-1)
                }
            };

            var result = await mapper.Map(source);

            result.Id.Should().Be(source.Id);
            result.FirstName.Should().Be(source.FirstName);
            result.LastName.Should().Be(source.LastName);
            result.CourseName.Should().Be(source.CourseName);
            result.EmployerName.Should().Be(source.Cohort.AccountLegalEntity.Name);
            result.ProviderName.Should().Be(source.Cohort.Provider.Name);
            result.StartDate.Should().Be(source.StartDate.Value);
            result.EndDate.Should().Be(source.EndDate.Value);
            result.PauseDate.Should().Be(source.PauseDate.Value);
            result.PaymentStatus.Should().Be(source.PaymentStatus);
            result.Uln.Should().Be(source.Uln);
            result.DateOfBirth.Should().Be(source.DateOfBirth.Value);
            result.ProviderRef.Should().Be(source.ProviderRef);
            result.EmployerRef.Should().Be(source.EmployerRef);
            result.TotalAgreedPrice.Should().Be(cost);
            result.CohortReference.Should().Be(source.Cohort.Reference);
            result.AccountLegalEntityId.Should().Be(source.Cohort.AccountLegalEntityId);
        }
Пример #2
0
        public async Task Then_Displays_The_First_If_None_Match(
            Apprenticeship source,
            decimal cost1,
            decimal cost2,
            [Frozen] Mock <ICurrentDateTime> currentDateTime,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            currentDateTime.Setup(x => x.UtcNow).Returns(DateTime.UtcNow.AddMonths(4));
            source.PriceHistory = new List <PriceHistory> {
                new PriceHistory
                {
                    ApprenticeshipId = source.Id,
                    Cost             = cost1,
                    ToDate           = DateTime.UtcNow.AddMonths(2).AddDays(1),
                    FromDate         = DateTime.UtcNow.AddMonths(1).AddDays(1)
                },
                new PriceHistory
                {
                    ApprenticeshipId = source.Id,
                    Cost             = cost2,
                    ToDate           = DateTime.UtcNow.AddMonths(1),
                    FromDate         = DateTime.UtcNow.AddMonths(-1)
                }
            };

            var result = await mapper.Map(source);

            result.TotalAgreedPrice.Should().Be(cost1);
        }
Пример #3
0
        public async Task And_Employer_Has_Unresolved_Errors_That_Have_Known_Triage_Status_And_Has_Course_DataLock_Changes_Requested_Only_One_Changes_Requested_Added(
            Apprenticeship source,
            DataLockStatus dataLockStatus,
            DataLockStatus dataLockStatus2,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            //Arrange
            dataLockStatus.Status        = Status.Fail;
            dataLockStatus.TriageStatus  = TriageStatus.Restart;
            dataLockStatus.IsResolved    = false;
            dataLockStatus2.ErrorCode    = DataLockErrorCode.Dlock03;
            dataLockStatus2.TriageStatus = TriageStatus.Restart;
            dataLockStatus2.IsResolved   = false;
            source.IsProviderSearch      = false;
            source.DataLockStatus        = new List <DataLockStatus> {
                dataLockStatus, dataLockStatus2
            };
            source.PriceHistory = new List <PriceHistory> {
                priceHistory
            };
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();

            //Act
            var result = await mapper.Map(source);

            //Assert
            result.Alerts.Should().NotBeNullOrEmpty();
            result.Alerts.Should().BeEquivalentTo(new List <Alerts> {
                Alerts.ChangesRequested
            });
        }
Пример #4
0
        public async Task And_Has_ErrorCode_DLock07_And_TriageStatus_Unknown_Then_ILR_Data_mismatch_Alert(
            Apprenticeship source,
            DataLockStatus dataLockStatus,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            source.PriceHistory = new List <PriceHistory> {
                priceHistory
            };
            source.IsProviderSearch     = true;
            dataLockStatus.ErrorCode    = DataLockErrorCode.Dlock07;
            dataLockStatus.TriageStatus = TriageStatus.Unknown;
            dataLockStatus.IsResolved   = false;
            source.PriceHistory         = new List <PriceHistory> {
                priceHistory
            };
            source.DataLockStatus = new List <DataLockStatus> {
                dataLockStatus
            };
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();

            var result = await mapper.Map(source);

            result.Alerts.Should().BeEquivalentTo(new List <Alerts> {
                Alerts.IlrDataMismatch
            });
        }
Пример #5
0
        public async Task And_Provider_Has_Unresolved_Errors_That_Have_Known_Triage_Status(
            Apprenticeship source,
            DataLockStatus dataLockStatus,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            //Arrange
            dataLockStatus.Status       = Status.Fail;
            dataLockStatus.TriageStatus = TriageStatus.Restart;
            dataLockStatus.IsResolved   = false;
            source.IsProviderSearch     = true;
            source.PriceHistory         = new List <PriceHistory> {
                priceHistory
            };
            source.DataLockStatus = new List <DataLockStatus> {
                dataLockStatus
            };
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();

            //Act
            var result = await mapper.Map(source);

            //Assert
            result.Alerts.Should().BeNullOrEmpty();
        }
Пример #6
0
        public async Task And_Is_Waiting_To_Start_Then_Payment_Status_Is_Mapped_To_Apprenticeship_Status()
        {
            //Arrange
            var apprenticeship = CreateApprenticeship();

            apprenticeship.PaymentStatus = PaymentStatus.Active;
            apprenticeship.StartDate     = DateTime.UtcNow.AddMonths(2);
            var mapper = new ApprenticeshipToApprenticeshipDetailsMapper(new CurrentDateTime());

            //Act
            var actual = await mapper.Map(apprenticeship);

            //Assert
            Assert.AreEqual(ApprenticeshipStatus.WaitingToStart, actual.ApprenticeshipStatus);
        }
Пример #7
0
        public async Task And_Has_Started_The_Payment_Status_Is_Mapped_To_Apprenticeship_Status(PaymentStatus paymentStatus, ApprenticeshipStatus expected)
        {
            //Arrange
            var apprenticeship = CreateApprenticeship();

            apprenticeship.PaymentStatus = paymentStatus;
            apprenticeship.StartDate     = DateTime.UtcNow.AddMonths(-2);
            var mapper = new ApprenticeshipToApprenticeshipDetailsMapper(new CurrentDateTime());

            //Act
            var actual = await mapper.Map(apprenticeship);

            //Assert
            Assert.AreEqual(expected, actual.ApprenticeshipStatus);
        }
Пример #8
0
        public async Task And_No_DataLocks_Then_No_Alerts(
            Apprenticeship source,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            source.DataLockStatus = new List <DataLockStatus>();
            source.PriceHistory   = new List <PriceHistory> {
                priceHistory
            };
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();

            var result = await mapper.Map(source);

            result.Alerts.Should().BeEmpty();
        }
Пример #9
0
        public async Task And_Has_PendingUpdateOriginator_Null_Then_No_Alert(
            Apprenticeship source,
            DataLockStatus dataLockStatus,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();
            source.ApprenticeshipUpdate = null;
            source.DataLockStatus       = new List <DataLockStatus> {
                dataLockStatus
            };
            source.PriceHistory = new List <PriceHistory> {
                priceHistory
            };

            var result = await mapper.Map(source);

            result.Alerts.Should().BeEmpty();
        }
Пример #10
0
        public async Task And_Has_ErrorCode_None_And_TriageStatus_Unknown_Then_No_Alerts(
            Apprenticeship source,
            DataLockStatus dataLockStatus,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            dataLockStatus.ErrorCode    = DataLockErrorCode.None;
            dataLockStatus.TriageStatus = TriageStatus.Unknown;
            source.PriceHistory         = new List <PriceHistory> {
                priceHistory
            };
            source.DataLockStatus = new List <DataLockStatus> {
                dataLockStatus
            };
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();

            var result = await mapper.Map(source);

            result.Alerts.Should().BeEmpty();
        }
Пример #11
0
        public async Task And_Has_Resolved_Alert_Then_Nothing_Is_Mapped(
            Apprenticeship source,
            DataLockStatus dataLockStatus,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            dataLockStatus.ErrorCode    = DataLockErrorCode.Dlock07;
            dataLockStatus.TriageStatus = TriageStatus.Change;
            dataLockStatus.IsResolved   = true;
            source.DataLockStatus       = new List <DataLockStatus> {
                dataLockStatus
            };
            source.PriceHistory = new List <PriceHistory> {
                priceHistory
            };
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();

            var result = await mapper.Map(source);

            result.Alerts.Should().BeEmpty();
        }
Пример #12
0
        public async Task And_Has_PendingUpdateOriginator_Provider_Then_Changes_Pending_Alert(
            Apprenticeship source,
            ApprenticeshipUpdate apprenticeshipUpdate,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            source.ApprenticeshipUpdate     = new List <ApprenticeshipUpdate>();
            apprenticeshipUpdate.Originator = Originator.Provider;
            apprenticeshipUpdate.Status     = (byte)ApprenticeshipUpdateStatus.Pending;
            source.ApprenticeshipUpdate.Add(apprenticeshipUpdate);
            source.DataLockStatus = new List <DataLockStatus>();
            source.PriceHistory   = new List <PriceHistory> {
                priceHistory
            };

            var result = await mapper.Map(source);

            result.Alerts.Should().BeEquivalentTo(new List <Alerts> {
                Alerts.ChangesForReview
            });
        }
Пример #13
0
        public async Task And_Has_ErrorCode_DLock03_And_TriageStatus_Restart_Then_Changes_Requested_Alert(
            Apprenticeship source,
            DataLockStatus dataLockStatus,
            PriceHistory priceHistory,
            ApprenticeshipToApprenticeshipDetailsMapper mapper)
        {
            dataLockStatus.ErrorCode    = DataLockErrorCode.Dlock03;
            dataLockStatus.TriageStatus = TriageStatus.Restart;
            dataLockStatus.IsResolved   = false;
            source.PriceHistory         = new List <PriceHistory> {
                priceHistory
            };
            source.DataLockStatus = new List <DataLockStatus> {
                dataLockStatus
            };
            source.ApprenticeshipUpdate = new List <ApprenticeshipUpdate>();

            var result = await mapper.Map(source);

            result.Alerts.Should().BeEquivalentTo(new List <Alerts> {
                Alerts.ChangesRequested
            });
        }