public void BuildDictionary_EmptyLearners()
        {
            var refDataFromJson = new LearnerReferenceDataJson
            {
                Learners = new List <ReferenceDataService.Model.Learner.Learner>(),
            };

            var refData = NewService().BuildDictionary(refDataFromJson);

            refData.Should().NotBeNull();
            refData.Keys.Should().HaveCount(0);
        }
        public void Populate()
        {
            var refDataFromJson = new LearnerReferenceDataJson();
            var cacheRefData    = new Dictionary <string, IEnumerable <ILearnerReferenceData> >();

            ILearnerReferenceDataCache cacheMock = new LearnerReferenceDataCache();

            var service = NewMockService(cacheMock);

            service.Setup(x => x.BuildDictionary(refDataFromJson)).Returns(cacheRefData).Verifiable();

            service.Object.Populate(refDataFromJson);

            cacheMock.Learners.Should().NotBeNull();
        }
Beispiel #3
0
        public virtual IReadOnlyDictionary <string, IEnumerable <ILearnerReferenceData> > BuildDictionary(LearnerReferenceDataJson learnerReferenceData)
        {
            var referenceData = new LearnerReferenceData();

            if (learnerReferenceData == null)
            {
                return(new Dictionary <string, IEnumerable <ILearnerReferenceData> >());
            }

            var dictionary = learnerReferenceData?
                             .Learners?
                             .GroupBy(x => x.LearnRefNumber)
                             .ToDictionary(
                k => k.Key,
                v => v.Select(l => (ILearnerReferenceData) new LearnerReferenceData
            {
                LearnRefNumber     = l.LearnRefNumber,
                UKPRN              = l.UKPRN,
                PMUKPRN            = l.PMUKPRN,
                PrevUKPRN          = l.PrevUKPRN,
                ULN                = l.ULN,
                PrevLearnRefNumber = l.PrevLearnRefNumber,
                LearnAimRef        = l.LearnAimRef,
                ProgTypeNullable   = l.ProgTypeNullable,
                StdCodeNullable    = l.StdCodeNullable,
                FworkCodeNullable  = l.FworkCodeNullable,
                PwayCodeNullable   = l.PwayCodeNullable,
                LearnStartDate     = l.LearnStartDate,
                LearnActEndDate    = l.LearnActEndDate,
                FundModel          = l.FundModel,
            }), StringComparer.OrdinalIgnoreCase);

            return(dictionary);
        }
Beispiel #4
0
        public void Populate(LearnerReferenceDataJson learnerReferenceData)
        {
            var cache = (LearnerReferenceDataCache)_cache;

            cache.Learners = BuildDictionary(learnerReferenceData);
        }
        public void BuildDictionary()
        {
            var refDataFromJson = new LearnerReferenceDataJson
            {
                Learners = new List <ReferenceDataService.Model.Learner.Learner>
                {
                    new ReferenceDataService.Model.Learner.Learner
                    {
                        LearnRefNumber     = "Learner1",
                        UKPRN              = 1000000,
                        PMUKPRN            = null,
                        ULN                = 10000000,
                        PrevLearnRefNumber = null,
                        LearnAimRef        = "LearnAimRef1a",
                        ProgTypeNullable   = 1,
                        StdCodeNullable    = 1,
                        FworkCodeNullable  = 1,
                        PwayCodeNullable   = 1,
                        LearnStartDate     = new DateTime(2019, 8, 1),
                        LearnActEndDate    = null,
                        FundModel          = 35,
                    },
                    new ReferenceDataService.Model.Learner.Learner
                    {
                        LearnRefNumber     = "Learner1",
                        UKPRN              = 1000000,
                        PMUKPRN            = null,
                        ULN                = 10000000,
                        PrevLearnRefNumber = null,
                        LearnAimRef        = "LearnAimRef1b",
                        ProgTypeNullable   = 1,
                        StdCodeNullable    = 1,
                        FworkCodeNullable  = 1,
                        PwayCodeNullable   = 1,
                        LearnStartDate     = new DateTime(2019, 8, 1),
                        LearnActEndDate    = null,
                        FundModel          = 35,
                    },
                    new ReferenceDataService.Model.Learner.Learner
                    {
                        LearnRefNumber     = "Learner2",
                        UKPRN              = 2000000,
                        PMUKPRN            = null,
                        ULN                = 20000000,
                        PrevLearnRefNumber = null,
                        LearnAimRef        = "LearnAimRef2a",
                        ProgTypeNullable   = 1,
                        StdCodeNullable    = 1,
                        FworkCodeNullable  = 1,
                        PwayCodeNullable   = 1,
                        LearnStartDate     = new DateTime(2019, 8, 1),
                        LearnActEndDate    = new DateTime(2020, 9, 1),
                        FundModel          = 35,
                    },
                },
            };

            var expectedResult = new Dictionary <string, List <ILearnerReferenceData> >
            {
                {
                    "Learner1", new List <ILearnerReferenceData>
                    {
                        new LearnerReferenceData
                        {
                            LearnRefNumber     = "Learner1",
                            UKPRN              = 1000000,
                            PMUKPRN            = null,
                            ULN                = 10000000,
                            PrevLearnRefNumber = null,
                            LearnAimRef        = "LearnAimRef1a",
                            ProgTypeNullable   = 1,
                            StdCodeNullable    = 1,
                            FworkCodeNullable  = 1,
                            PwayCodeNullable   = 1,
                            LearnStartDate     = new DateTime(2019, 8, 1),
                            LearnActEndDate    = null,
                            FundModel          = 35,
                        },
                        new LearnerReferenceData
                        {
                            LearnRefNumber     = "Learner1",
                            UKPRN              = 1000000,
                            PMUKPRN            = null,
                            ULN                = 10000000,
                            PrevLearnRefNumber = null,
                            LearnAimRef        = "LearnAimRef1b",
                            ProgTypeNullable   = 1,
                            StdCodeNullable    = 1,
                            FworkCodeNullable  = 1,
                            PwayCodeNullable   = 1,
                            LearnStartDate     = new DateTime(2019, 8, 1),
                            LearnActEndDate    = null,
                            FundModel          = 35,
                        },
                    }
                },
                {
                    "Learner2", new List <ILearnerReferenceData>
                    {
                        new LearnerReferenceData
                        {
                            LearnRefNumber     = "Learner2",
                            UKPRN              = 2000000,
                            PMUKPRN            = null,
                            ULN                = 20000000,
                            PrevLearnRefNumber = null,
                            LearnAimRef        = "LearnAimRef2a",
                            ProgTypeNullable   = 1,
                            StdCodeNullable    = 1,
                            FworkCodeNullable  = 1,
                            PwayCodeNullable   = 1,
                            LearnStartDate     = new DateTime(2019, 8, 1),
                            LearnActEndDate    = new DateTime(2020, 9, 1),
                            FundModel          = 35,
                        },
                    }
                },
            };

            var result = NewService().BuildDictionary(refDataFromJson);

            result.Should().NotBeNull();
            result.Should().BeEquivalentTo(expectedResult);
        }