コード例 #1
0
        public void BuildLearner_NoPostcodeUplifts()
        {
            var learner = new FM25LearnerDto()
            {
                Postcode = "postcode",
            };

            decimal?efaDisadvantagesUplift = null;

            var postcodesReferenceDataServiceMock = new Mock <IPostcodesReferenceDataService>();
            var organisationsDataServiceMock      = new Mock <IOrganisationReferenceDataService>();

            postcodesReferenceDataServiceMock.Setup(p => p.LatestEFADisadvantagesUpliftForPostcode(learner.Postcode)).Returns(efaDisadvantagesUplift);
            organisationsDataServiceMock.Setup(l => l.SpecialistResourcesForCampusIdentifier(It.IsAny <string>())).Returns(new List <CampusIdentifierSpecResource>());

            var dataEntity = NewService(
                organisationReferenceDataService: organisationsDataServiceMock.Object,
                postcodesReferenceDataService: postcodesReferenceDataServiceMock.Object)
                             .BuildLearnerDataEntity(learner);

            dataEntity.Attributes["PostcodeDisadvantageUplift"].Value.Should().BeNull();
        }
        public void ProvideDtos_DtoAsExpected()
        {
            IMessage message = new Message
            {
                LearningProvider = new MessageLearningProvider
                {
                    UKPRN = 12345678
                },
                Learner = new MessageLearner[]
                {
                    new MessageLearner
                    {
                        LearnRefNumber          = "Learner_1",
                        CampId                  = "CampID",
                        DateOfBirthSpecified    = true,
                        DateOfBirth             = new DateTime(1990, 8, 1),
                        EngGrade                = "1",
                        MathGrade               = "2",
                        PlanEEPHoursSpecified   = true,
                        PlanEEPHours            = 1,
                        PlanLearnHoursSpecified = true,
                        PlanLearnHours          = 1,
                        Postcode                = "Postcode",
                        PostcodePrior           = "PostcodePrior",
                        ULN        = 1000,
                        LearnerFAM = new MessageLearnerLearnerFAM[]
                        {
                            new MessageLearnerLearnerFAM
                            {
                                LearnFAMCode = 1,
                                LearnFAMType = "ECF"
                            },
                            new MessageLearnerLearnerFAM
                            {
                                LearnFAMCode = 1,
                                LearnFAMType = "EDF"
                            },
                            new MessageLearnerLearnerFAM
                            {
                                LearnFAMCode = 2,
                                LearnFAMType = "EDF"
                            },
                            new MessageLearnerLearnerFAM
                            {
                                LearnFAMCode = 1,
                                LearnFAMType = "EHC"
                            },
                            new MessageLearnerLearnerFAM
                            {
                                LearnFAMCode = 1,
                                LearnFAMType = "HNS"
                            },
                        },
                        LearningDelivery = new MessageLearnerLearningDelivery[]
                        {
                            new MessageLearnerLearningDelivery
                            {
                                LearnAimRef              = "AimRef",
                                AimType                  = 1,
                                FundModel                = 25,
                                AimSeqNumber             = 1,
                                CompStatus               = 2,
                                LearnActEndDateSpecified = true,
                                LearnActEndDate          = new DateTime(2018, 8, 1),
                                LearnPlanEndDate         = new DateTime(2018, 8, 1),
                                LearnStartDate           = new DateTime(2018, 8, 1),
                                PHoursSpecified          = true,
                                PHours                  = 1,
                                ProgTypeSpecified       = true,
                                ProgType                = 1,
                                WithdrawReasonSpecified = true,
                                WithdrawReason          = 1,
                                LearningDeliveryFAM     = new MessageLearnerLearningDeliveryLearningDeliveryFAM[]
                                {
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "1",
                                        LearnDelFAMType = "SOF"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "1",
                                        LearnDelFAMType = "LDM"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "2",
                                        LearnDelFAMType = "LDM"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "3",
                                        LearnDelFAMType = "LDM"
                                    }
                                }
                            }
                        }
                    }
                },
                LearnerDestinationandProgression = new MessageLearnerDestinationandProgression[]
                {
                    new MessageLearnerDestinationandProgression
                    {
                        LearnRefNumber = "Learner_1",
                        DPOutcome      = new MessageLearnerDestinationandProgressionDPOutcome[]
                        {
                            new MessageLearnerDestinationandProgressionDPOutcome
                            {
                                OutCode = 1,
                                OutType = "Type"
                            },
                            new MessageLearnerDestinationandProgressionDPOutcome
                            {
                                OutCode = 2,
                                OutType = "Type"
                            }
                        }
                    }
                }
            };

            var expectedDto = new FM25LearnerDto
            {
                LearnRefNumber = "Learner_1",
                DateOfBirth    = new DateTime(1990, 8, 1),
                CampId         = "CampID",
                EngGrade       = "1",
                MathGrade      = "2",
                PlanEEPHours   = 1,
                PlanLearnHours = 1,
                Postcode       = "Postcode",
                PostcodePrior  = "PostcodePrior",
                ULN            = 1000,
                LrnFAM_ECF     = 1,
                LrnFAM_EDF1    = 1,
                LrnFAM_EDF2    = 2,
                LrnFAM_EHC     = 1,
                LrnFAM_HNS     = 1,
                DPOutcomes     = new List <DPOutcome>
                {
                    new DPOutcome
                    {
                        OutCode = 1,
                        OutType = "Type"
                    },
                    new DPOutcome
                    {
                        OutCode = 2,
                        OutType = "Type"
                    }
                },
                LearningDeliveries = new List <LearningDelivery>
                {
                    new LearningDelivery
                    {
                        LearnAimRef          = "AimRef",
                        AimType              = 1,
                        FundModel            = 25,
                        AimSeqNumber         = 1,
                        CompStatus           = 2,
                        LearnActEndDate      = new DateTime(2018, 8, 1),
                        LearnPlanEndDate     = new DateTime(2018, 8, 1),
                        LearnStartDate       = new DateTime(2018, 8, 1),
                        PHours               = 1,
                        ProgType             = 1,
                        WithdrawReason       = 1,
                        LearningDeliveryFAMs = new List <LearningDeliveryFAM>
                        {
                            new LearningDeliveryFAM
                            {
                                LearnDelFAMCode = "1",
                                LearnDelFAMType = "SOF"
                            },
                            new LearningDeliveryFAM
                            {
                                LearnDelFAMCode = "1",
                                LearnDelFAMType = "LDM"
                            },
                            new LearningDeliveryFAM
                            {
                                LearnDelFAMCode = "2",
                                LearnDelFAMType = "LDM"
                            },
                            new LearningDeliveryFAM
                            {
                                LearnDelFAMCode = "3",
                                LearnDelFAMType = "LDM"
                            }
                        }
                    }
                }
            };

            NewService().ProvideDtos(FundModelFilter, message).First().Should().BeEquivalentTo(expectedDto);
        }
コード例 #3
0
        public void BuildLearner()
        {
            var learner = new FM25LearnerDto()
            {
                DateOfBirth    = new DateTime(1990, 12, 25),
                EngGrade       = "A",
                LearnRefNumber = "ABC",
                MathGrade      = "B",
                PlanEEPHours   = 2,
                PlanLearnHours = 3,
                Postcode       = "postcode",
                ULN            = 123456,
                LrnFAM_ECF     = 1,
                LrnFAM_EDF1    = 2,
                LrnFAM_EDF2    = 3,
                LrnFAM_EHC     = 4,
                LrnFAM_HNS     = 5,
                LrnFAM_MCF     = 6,
            };

            var uplift = 1.1m;

            var efaDisadvantageOne = new EfaDisadvantage
            {
                Postcode      = "CV1 2WT",
                Uplift        = 1.0m,
                EffectiveFrom = new DateTime(2000, 01, 01),
                EffectiveTo   = new DateTime(2015, 07, 31),
            };

            var efaDisadvatageTwo = new EfaDisadvantage
            {
                Postcode      = "CV1 2WT",
                Uplift        = uplift,
                EffectiveFrom = new DateTime(2015, 08, 01),
                EffectiveTo   = new DateTime(2020, 07, 31),
            };

            var efaDisadvantages = new List <EfaDisadvantage>()
            {
                efaDisadvantageOne,
                efaDisadvatageTwo
            };

            var postcodesReferenceDataServiceMock = new Mock <IPostcodesReferenceDataService>();
            var organisationsDataServiceMock      = new Mock <IOrganisationReferenceDataService>();

            postcodesReferenceDataServiceMock.Setup(p => p.LatestEFADisadvantagesUpliftForPostcode(learner.Postcode)).Returns(efaDisadvatageTwo.Uplift);
            organisationsDataServiceMock.Setup(l => l.SpecialistResourcesForCampusIdentifier(It.IsAny <string>())).Returns(new List <CampusIdentifierSpecResource>());

            var dataEntity = NewService(
                organisationReferenceDataService: organisationsDataServiceMock.Object,
                postcodesReferenceDataService: postcodesReferenceDataServiceMock.Object)
                             .BuildLearnerDataEntity(learner);

            dataEntity.EntityName.Should().Be("Learner");
            dataEntity.Attributes.Should().HaveCount(14);
            dataEntity.Attributes["DateOfBirth"].Value.Should().Be(learner.DateOfBirth);
            dataEntity.Attributes["EngGrade"].Value.Should().Be(learner.EngGrade);
            dataEntity.Attributes["LearnRefNumber"].Value.Should().Be(learner.LearnRefNumber);
            dataEntity.Attributes["LrnFAM_ECF"].Value.Should().Be(1);
            dataEntity.Attributes["LrnFAM_EDF1"].Value.Should().Be(2);
            dataEntity.Attributes["LrnFAM_EDF2"].Value.Should().Be(3);
            dataEntity.Attributes["LrnFAM_EHC"].Value.Should().Be(4);
            dataEntity.Attributes["LrnFAM_HNS"].Value.Should().Be(5);
            dataEntity.Attributes["LrnFAM_MCF"].Value.Should().Be(6);
            dataEntity.Attributes["MathGrade"].Value.Should().Be(learner.MathGrade);
            dataEntity.Attributes["PlanEEPHours"].Value.Should().Be(learner.PlanEEPHours);
            dataEntity.Attributes["PlanLearnHours"].Value.Should().Be(learner.PlanLearnHours);
            dataEntity.Attributes["PostcodeDisadvantageUplift"].Value.Should().Be(uplift);
            dataEntity.Attributes["ULN"].Value.Should().Be(learner.ULN);

            dataEntity.Children.Should().BeEmpty();
        }
        public IDataEntity GetDataEntityMapperEntity()
        {
            var larsRefererenceDataServiceMock         = new Mock <ILARSReferenceDataService>();
            var organisationRefererenceDataServiceMock = new Mock <IOrganisationReferenceDataService>();
            var postcodesReferenceDataServiceMock      = new Mock <IPostcodesReferenceDataService>();

            var learner = new FM25LearnerDto
            {
                LearnRefNumber     = "Learner1",
                ULN                = 1234567890,
                Postcode           = "Postcode",
                EngGrade           = "Grade",
                MathGrade          = "Grade",
                LearningDeliveries = new List <LearningDelivery>
                {
                    new LearningDelivery
                    {
                        LearnAimRef          = "1",
                        AimSeqNumber         = 2,
                        AimType              = 3,
                        CompStatus           = 4,
                        PwayCode             = 5,
                        ProgType             = 6,
                        FworkCode            = 7,
                        FundModel            = 25,
                        StdCode              = 8,
                        LearnStartDate       = new DateTime(2019, 8, 1),
                        LearnPlanEndDate     = new DateTime(2020, 8, 1),
                        DelLocPostCode       = "Postcode",
                        LearningDeliveryFAMs = new List <LearningDeliveryFAM>
                        {
                            new LearningDeliveryFAM()
                        },
                    },
                },
                DPOutcomes = new List <DPOutcome>
                {
                    new DPOutcome
                    {
                        OutCode = 1,
                        OutType = "2",
                    }
                }
            };

            var larsLearningDelivery = new LARSLearningDelivery
            {
                LARSValidities = new List <LARSValidity>
                {
                    new LARSValidity(),
                },
            };

            var learningDelivery = learner.LearningDeliveries.First();

            larsRefererenceDataServiceMock.Setup(l => l.LARSLearningDeliveryForLearnAimRef(learningDelivery.LearnAimRef)).Returns(larsLearningDelivery);
            organisationRefererenceDataServiceMock.Setup(o => o.OrganisationFundingForUKPRN(It.IsAny <int>())).Returns(new List <OrgFunding> {
                new OrgFunding()
            });
            organisationRefererenceDataServiceMock.Setup(o => o.SpecialistResourcesForCampusIdentifier(It.IsAny <string>())).Returns(new List <CampusIdentifierSpecResource> {
                new CampusIdentifierSpecResource()
            });
            organisationRefererenceDataServiceMock.Setup(o => o.PostcodeSpecialistResourcesForUkprn(It.IsAny <int>()))
            .Returns(new List <PostcodeSpecialistResource> {
                new PostcodeSpecialistResource {
                    SpecialistResources = "Y", EffectiveFrom = new DateTime(2020, 8, 1)
                }
            });
            postcodesReferenceDataServiceMock.Setup(p => p.LatestEFADisadvantagesUpliftForPostcode(learner.Postcode)).Returns(1.0m);

            return(new DataEntityMapper(
                       larsRefererenceDataServiceMock.Object,
                       organisationRefererenceDataServiceMock.Object,
                       postcodesReferenceDataServiceMock.Object).BuildGlobalDataEntity(learner, new Global()));
        }