Exemple #1
0
        public void SummariseByPeriods()
        {
            var collectionPeriods = GetCollectionPeriods(1920);

            var result = SummarisationPaymentsProcess.SummarisePeriods(GetPeriodsData(1920), collectionPeriods);

            result.Count.Should().Be(12);

            foreach (var item in result)
            {
                item.ActualValue.Should().Be(periodsToGenerate * amount);
            }
        }
Exemple #2
0
        public void SummariseByFundingStream_R02(int apprenticeshipContractType, string fspCode, int dlc, string fundingSourceCSV, string transactionTypesCSV, string academicYearsCSV)
        {
            var fundingTypes = GetFundingTypes();

            FundingStream fundingStream = fundingTypes.SelectMany(ft => ft.FundingStreams).Where(fs => fs.PeriodCode.Equals(fspCode, StringComparison.OrdinalIgnoreCase) && fs.DeliverableLineCode == dlc).First();

            List <int> academicYears = academicYearsCSV.Split(',').Select(int.Parse).ToList();

            int ilrFundlineCount = fundingStream.FundLines.Count(fl => fl.LineType.Equals("ILR", StringComparison.OrdinalIgnoreCase) && academicYears.Contains(fl.AcademicYear.HasValue ? fl.AcademicYear.Value : 0));

            int easFundlineCount = fundingStream.FundLines.Count(fl => fl.LineType.Equals("EAS", StringComparison.OrdinalIgnoreCase) && academicYears.Contains(fl.AcademicYear.HasValue ? fl.AcademicYear.Value : 0));

            List <int> fundingSources = fundingSourceCSV.Split(',').Select(int.Parse).ToList();

            List <int> transactionTypes = transactionTypesCSV.Split(',').Select(int.Parse).ToList();

            var summarisationMessageMock = new Mock <ISummarisationMessage>();

            summarisationMessageMock.SetupGet(s => s.CollectionYear).Returns(1920);
            summarisationMessageMock.SetupGet(s => s.CollectionMonth).Returns(2);

            var task = new SummarisationPaymentsProcess();

            var results = task.Summarise(fundingStream, GetTestProvider(apprenticeshipContractType, fundingSources, transactionTypes), GetContractAllocation(), GetCollectionPeriods(0), summarisationMessageMock.Object).OrderBy(x => x.Period).ToList();

            results.Count.Should().Be(1);

            foreach (var item in results)
            {
                decimal ilrActualValue = learningDeliveryRecords * fundingSources.Count * ilrFundlineCount * transactionTypes.Count * periodsToGenerate * amount;

                decimal easActualValue = learningDeliveryRecords * easFundlineCount * periodsToGenerate * amount;

                decimal actualValue = ilrActualValue + easActualValue;

                item.ActualValue.Should().Be(actualValue);

                item.ContractAllocationNumber.Should().Be("AllocLEVY1799-2");
            }
        }