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(); }
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); }
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); }