private IReadOnlyCollection <FundingStream> GetESFFundingStreamsData()
        {
            List <ISummarisationConfigProvider <FundingType> > fundingTypesProviders = new List <ISummarisationConfigProvider <FundingType> >();

            var fundingTypesProvider = new FundingTypesProvider(new JsonSerializationService());

            fundingTypesProviders.Add(fundingTypesProvider);
            return(fundingTypesProviders
                   .FirstOrDefault(w => w.CollectionType.Equals(CollectionTypeConstants.ESF.ToString(), StringComparison.OrdinalIgnoreCase))
                   .Provide().Where(x => x.SummarisationType.Equals(SummarisationTypeConstants.ESF_SuppData, StringComparison.OrdinalIgnoreCase))
                   .SelectMany(fs => fs.FundingStreams)
                   .ToList());
        }
Esempio n. 2
0
        public void FundLineConfiguration(string summarisationType, string fspCode, int dlc, string fundLine, string lineType)
        {
            FundingTypesProvider fundingTypesProvider = NewProvider();

            var fundingTypes = fundingTypesProvider.Provide();

            fundingTypes.Should().Contain(ft => ft.SummarisationType == summarisationType);

            var fundingStreams = fundingTypes.First(ft => ft.SummarisationType == summarisationType).FundingStreams;

            fundingStreams.Should().Contain(fs => fs.PeriodCode == fspCode && fs.DeliverableLineCode == dlc);

            var fundLines = fundingStreams.First(fs => fs.PeriodCode == fspCode && fs.DeliverableLineCode == dlc).FundLines;

            fundLines.Should().Contain(fl => fl.Fundline == fundLine && fl.LineType == lineType);
        }
Esempio n. 3
0
        private static List <FundingType> GetFundingTypes()
        {
            FundingTypesProvider fundingTypesProvider = new FundingTypesProvider(new JsonSerializationService());

            return(fundingTypesProvider.Provide().ToList());
        }
        private static ICollection <FundingType> FundingTypesConfigured()
        {
            var fundingTypesProvider = new FundingTypesProvider(new JsonSerializationService());

            return(fundingTypesProvider.Provide());
        }
        public async Task Summarise_CheckESFMissingRecordsAdded()
        {
            int ukprn = 10001639;
            List <ISummarisationConfigProvider <FundingType> > fundingTypesProviders = new List <ISummarisationConfigProvider <FundingType> >();

            var fundingTypesProvider = new FundingTypesProvider(new JsonSerializationService());

            fundingTypesProviders.Add(fundingTypesProvider);

            var summarisationMessageMock = new Mock <ISummarisationMessage>();

            summarisationMessageMock.SetupGet(s => s.Ukprn).Returns(ukprn);
            summarisationMessageMock.SetupGet(s => s.SummarisationTypes).Returns(new List <string>()
            {
                "ESF_SuppData"
            });
            summarisationMessageMock.SetupGet(s => s.CollectionType).Returns("ESF");
            summarisationMessageMock.SetupGet(s => s.ProcessType).Returns("Deliverable");
            summarisationMessageMock.SetupGet(s => s.CollectionReturnCode).Returns("ESF01");
            summarisationMessageMock.SetupGet(s => s.CollectionYear).Returns(2018);
            summarisationMessageMock.SetupGet(s => s.CollectionMonth).Returns(11);

            var loggerMock = new Mock <ILogger>();

            var repositoryMock = new Mock <IProviderRepository>();

            repositoryMock.Setup(r => r.ProvideAsync(ukprn, summarisationMessageMock.Object, It.IsAny <CancellationToken>())).Returns(Task.FromResult(GetTestProviderData(ukprn)));

            repositoryMock.Setup(r => r.GetAllProviderIdentifiersAsync(CollectionTypeConstants.ESF.ToString(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(GetProviderList(ukprn)));

            Func <IProviderRepository> providerRepositoryFunc = () =>
            {
                return(repositoryMock.Object);
            };

            var dataStorePersistenceServiceMock = new Mock <IDataStorePersistenceService>();

            CollectionPeriod collectionPeriod01 = new CollectionPeriod()
            {
                ActualsSchemaPeriod = 201810,
                CollectionYear      = 1819,
                CollectionMonth     = 3,
                CalendarYear        = 2018,
                CalendarMonth       = 10
            };
            CollectionPeriod collectionPeriod02 = new CollectionPeriod()
            {
                ActualsSchemaPeriod = 201811,
                CollectionYear      = 1819,
                CollectionMonth     = 4,
                CalendarYear        = 2018,
                CalendarMonth       = 11
            };

            IEnumerable <CollectionPeriod> collectionPeriods = new List <CollectionPeriod>()
            {
                collectionPeriod01,
                collectionPeriod02
            };

            Dictionary <string, IReadOnlyCollection <IFcsContractAllocation> > fspContractAllocations = new Dictionary <string, IReadOnlyCollection <IFcsContractAllocation> >();
            List <IFcsContractAllocation> fcsContractAllocations = new List <IFcsContractAllocation>()
            {
                new FcsContractAllocation()
                {
                    ContractAllocationNumber = "ESF-2228",
                    DeliveryOrganisation     = "ORG0001109",
                    ContractStartDate        = 201808,
                    ContractEndDate          = 201811,
                    DeliveryUkprn            = 10001639,
                    FundingStreamPeriodCode  = "ESF1420",
                    Id = 137964
                }
            };

            fspContractAllocations.Add("ESF1420", fcsContractAllocations);
            var fcsRepositoryMock = new Mock <IFcsRepository>();

            fcsRepositoryMock.Setup(r => r.RetrieveAsync(It.IsAny <CancellationToken>())).Returns(Task.FromResult((IReadOnlyDictionary <string, IReadOnlyCollection <IFcsContractAllocation> >)fspContractAllocations));

            List <ISummarisationService> summarisationServices = new List <ISummarisationService>()
            {
                new SummarisationDeliverableProcess()
            };

            var collectionPeriodsProvider = new[] { new CollectionPeriodsProvider(new JsonSerializationService()) };

            IEnumerable <Summarisation.Data.Output.Model.SummarisedActual> providerActuals
                = new List <Summarisation.Data.Output.Model.SummarisedActual>()
                {
                new Summarisation.Data.Output.Model.SummarisedActual()
                {
                    ActualValue              = 5.56M,
                    ActualVolume             = 3,
                    CollectionReturnId       = 16,
                    ContractAllocationNumber = "ESF-2228",
                    DeliverableCode          = 7,
                    FundingStreamPeriodCode  = "ESF2320",
                    OrganisationId           = "ORG0001109",
                    Period         = 201809,
                    PeriodTypeCode = "AY2"
                }
                };

            var summarisedActualsRepositoryMock = new Mock <ISummarisedActualsProcessRepository>();

            summarisedActualsRepositoryMock.Setup(r => r.GetLastCollectionReturnForCollectionTypeAsync(It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(GetLatestCollectionReturn()));
            summarisedActualsRepositoryMock.Setup(r => r.GetSummarisedActualsForCollectionReturnAndOrganisationAsync(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(providerActuals /*GetSummarisedActuals()*/));

            var result = await NewSummarisationWrapper(
                fundingTypesProviders : fundingTypesProviders,
                fcsRepository : fcsRepositoryMock.Object,
                summarisedActualsProcessRepository : summarisedActualsRepositoryMock.Object,
                collectionPeriodsProviders : collectionPeriodsProvider,
                summarisationServices : summarisationServices,
                dataStorePersistenceService : dataStorePersistenceServiceMock.Object,
                repositoryFactory : providerRepositoryFunc,
                dataOptions : null,
                logger : loggerMock.Object)
                         .Summarise(summarisationMessageMock.Object, CancellationToken.None);

            result.Should().NotBeNullOrEmpty();
            result.Count().Should().BeGreaterThan(0);
        }