コード例 #1
0
        public async Task Then_an_eligible_apprenticeship_where_uln_not_applied_previously_returns_true()
        {
            var apprenticeship = new ApprenticeshipBuilder().WithValidIncentiveProperties().Build();

            var result = await _sut.IsApprenticeshipEligible(apprenticeship);

            result.Should().BeTrue();
        }
コード例 #2
0
        public async Task Then_false_is_returned_when_the_apprenticeship_start_date_is_before_the_scheme_start_date()
        {
            var apprenticeship = new ApprenticeshipBuilder()
                                 .WithStartDate(new DateTime(2020, 7, 31))
                                 .Build();

            var result = await _sut.IsApprenticeshipEligible(apprenticeship);

            result.Should().BeFalse();
        }
コード例 #3
0
        public async Task Then_an_unapproved_apprenticeship_returns_false()
        {
            var apprenticeship = new ApprenticeshipBuilder()
                                 .WithIsApproved(false)
                                 .Build();

            var result = await _sut.IsApprenticeshipEligible(apprenticeship);

            result.Should().BeFalse();
        }
コード例 #4
0
        public async Task Then_an_eligible_apprenticeship_returns_expected_result(bool isApproved, bool ulnPreviouslyApplied, bool expected)
        {
            _ulnValidationServiceMock.Setup(x => x.UlnAlreadyOnSubmittedIncentiveApplication(It.IsAny <long>()))
            .ReturnsAsync(ulnPreviouslyApplied);

            var apprenticeship = new ApprenticeshipBuilder().WithValidIncentiveProperties().WithIsApproved(isApproved).Build();

            var result = await _sut.IsApprenticeshipEligible(apprenticeship);

            result.Should().Be(expected);
        }
        public void Finds_datalocks2_when_provider_has_multiple_earnings()
        {
            var a = new ApprenticeshipBuilder()
                    .ForProgramme(episodes: e => e.WithPriceFromTnp1And2(10, 10))
                    .WithFunctionalSkills();

            var sut = a.CreateLearnerReport();

            sut.CollectionPeriods.First()
            .Should().BeEquivalentTo(new
            {
                Ilr = new { Cost = 20 },
            });
        }
        public void Finds_datalocks2_when_apprenticeship_is_missing()
        {
            var a = new ApprenticeshipBuilder()
                    .ForMissingLearner(uln: 22);

            var sut = a.CreateLearnerReport();

            sut.CollectionPeriods.Should().NotBeEmpty();
            sut.CollectionPeriods.First()
            .Should().BeEquivalentTo(new
            {
                Apprenticeship = (DataMatch?)null,
                Ilr            = new { Uln = 22 },
                DataLocks      = new[] { DataLock.Dlock02 },
            });
        }
コード例 #7
0
        //todo rename this to have commitment in the method name. Convert the pairs of commitment and pe ids to key value pairs and defaults second one to null
        protected async Task SetupTestCommitmentData(string commitmentIdentifier1, string priceEpisodeIdentifier1,
                                                     string commitmentIdentifier2 = null, string priceEpisodeIdentifier2 = null)
        {
            var learner = TestSession.FM36Global.Learners.Single();

            learner.ULN            = TestSession.Learner.Uln;
            learner.LearnRefNumber = TestSession.Learner.LearnRefNumber;

            var priceEpisode1     = learner.PriceEpisodes.Single(y => y.PriceEpisodeIdentifier == priceEpisodeIdentifier1);
            var learningDelivery1 = learner.LearningDeliveries.Single(x => x.AimSeqNumber == priceEpisode1.PriceEpisodeValues.PriceEpisodeAimSeqNumber);

            LearningDelivery learningDelivery2;
            PriceEpisode     priceEpisode2;

            if (string.IsNullOrWhiteSpace(priceEpisodeIdentifier2))
            {
                priceEpisode2     = priceEpisode1;
                learningDelivery2 = learningDelivery1;
            }
            else
            {
                priceEpisode2     = learner.PriceEpisodes.Single(y => y.PriceEpisodeIdentifier == priceEpisodeIdentifier2);
                learningDelivery2 = learner.LearningDeliveries.Single(x => x.AimSeqNumber == priceEpisode2.PriceEpisodeValues.PriceEpisodeAimSeqNumber);
            }

            var ids = new List <long> {
                TestSession.GenerateId(), TestSession.GenerateId()
            };

            var commitment1 = new ApprenticeshipBuilder()
                              .BuildSimpleApprenticeship(TestSession, learningDelivery1.LearningDeliveryValues, ids.Min())
                              .WithALevyPayingEmployer()
                              .WithApprenticeshipPriceEpisode(priceEpisode1.PriceEpisodeValues)
                              .ToApprenticeshipModel();

            TestSession.Apprenticeships.GetOrAdd(commitmentIdentifier1, commitment1);
            testDataContext.Apprenticeship.Add(commitment1);
            testDataContext.ApprenticeshipPriceEpisode.AddRange(commitment1.ApprenticeshipPriceEpisodes);

            if (commitmentIdentifier2 != null)
            {
                var commitment2 = new ApprenticeshipBuilder()
                                  .BuildSimpleApprenticeship(TestSession, learningDelivery2.LearningDeliveryValues, ids.Max())
                                  .WithALevyPayingEmployer()
                                  .WithApprenticeshipPriceEpisode(priceEpisode2.PriceEpisodeValues)
                                  .ToApprenticeshipModel();

                TestSession.Apprenticeships.GetOrAdd(commitmentIdentifier2, commitment2);
                testDataContext.Apprenticeship.Add(commitment2);
                testDataContext.ApprenticeshipPriceEpisode.AddRange(commitment2.ApprenticeshipPriceEpisodes);
            }

            var levyModel = TestSession.Employer.ToModel();

            levyModel.Balance = 1000000000;

            if (!testDataContext.LevyAccount.Any(x => x.AccountId == levyModel.AccountId))
            {
                testDataContext.LevyAccount.Add(levyModel);
            }
            await testDataContext.SaveChangesAsync();

            TestSession.FM36Global.UKPRN = TestSession.Provider.Ukprn;
        }