Пример #1
0
        public void BuildLearner()
        {
            var learner = new FM35LearnerDto()
            {
                LearnRefNumber = "ABC",
                DateOfBirth    = new DateTime(2000, 8, 1)
            };

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

            postcodesRefererenceDataServiceMock.Setup(l => l.SFADisadvantagesForPostcode(It.IsAny <string>())).Returns(new List <SfaDisadvantage>());
            organisationsDataServiceMock.Setup(l => l.SpecialistResourcesForCampusIdentifier(It.IsAny <string>())).Returns(new List <CampusIdentifierSpecResource>());

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

            dataEntity.EntityName.Should().Be("Learner");
            dataEntity.Attributes.Should().HaveCount(2);
            dataEntity.Attributes["LearnRefNumber"].Value.Should().Be(learner.LearnRefNumber);
            dataEntity.Attributes["DateOfBirth"].Value.Should().Be(learner.DateOfBirth);

            dataEntity.Children.Should().BeEmpty();
        }
Пример #2
0
        public void BuildGlobalDataEntity()
        {
            var ukprn = 1234;

            var learner = new FM35LearnerDto
            {
                PostcodePrior = "Postcode"
            };

            var global = new Global
            {
                LARSVersion = "1.0.0",
                PostcodeDisadvantageVersion = "2.0.0",
                OrgVersion = "3.0.0",
                UKPRN      = ukprn
            };

            var organisationRefererenceDataServiceMock = new Mock <IOrganisationReferenceDataService>();
            var postcodesRefererenceDataServiceMock    = new Mock <IPostcodesReferenceDataService>();

            organisationRefererenceDataServiceMock.Setup(o => o.OrganisationFundingForUKPRN(global.UKPRN)).Returns(new List <OrgFunding> {
                new OrgFunding()
            });
            organisationRefererenceDataServiceMock.Setup(o => o.PostcodeSpecialistResourcesForUkprn(global.UKPRN)).Returns(new List <PostcodeSpecialistResource> {
                new PostcodeSpecialistResource()
            });
            postcodesRefererenceDataServiceMock.Setup(o => o.SFADisadvantagesForPostcode(learner.PostcodePrior)).Returns(new List <SfaDisadvantage>());

            var dataEntity = NewService(
                organisationReferenceDataService: organisationRefererenceDataServiceMock.Object,
                postcodesReferenceDataService: postcodesRefererenceDataServiceMock.Object).BuildGlobalDataEntity(learner, global);

            dataEntity.EntityName.Should().Be("global");
            dataEntity.Children.Should().HaveCount(3);
            dataEntity.Children.Select(x => x.EntityName).Should().Contain("Learner", "Postcode_Specialist_Resource_RefData", "OrgFunding");
            dataEntity.Attributes.Should().HaveCount(4);
            dataEntity.Attributes["LARSVersion"].Value.Should().Be(global.LARSVersion);
            dataEntity.Attributes["PostcodeDisadvantageVersion"].Value.Should().Be(global.PostcodeDisadvantageVersion);
            dataEntity.Attributes["OrgVersion"].Value.Should().Be(global.OrgVersion);
            dataEntity.Attributes["UKPRN"].Value.Should().Be(global.UKPRN);
        }
        public IDataEntity GetDataEntityMapperEntity()
        {
            var largeEmployersRefererenceDataServiceMock = new Mock <ILargeEmployersReferenceDataService>();
            var larsReferenceDataServiceMock             = new Mock <ILARSReferenceDataService>();
            var organisationRefererenceDataServiceMock   = new Mock <IOrganisationReferenceDataService>();
            var postcodesReferenceDataServiceMock        = new Mock <IPostcodesReferenceDataService>();

            var learner = new FM35LearnerDto
            {
                LearnRefNumber            = "Learner1",
                PostcodePrior             = "Postcode",
                LearnerEmploymentStatuses = new List <LearnerEmploymentStatus>
                {
                    new LearnerEmploymentStatus
                    {
                        EmpId          = 10,
                        DateEmpStatApp = new DateTime(2019, 8, 1),
                        EmpStat        = 2,
                    },
                },
                LearningDeliveries = new List <LearningDelivery>
                {
                    new LearningDelivery
                    {
                        LearnAimRef          = "1",
                        AimSeqNumber         = 2,
                        AimType              = 3,
                        CompStatus           = 4,
                        PwayCode             = 5,
                        ProgType             = 6,
                        FworkCode            = 7,
                        FundModel            = 35,
                        StdCode              = 8,
                        LearnStartDate       = new DateTime(2019, 8, 1),
                        LearnPlanEndDate     = new DateTime(2020, 8, 1),
                        DelLocPostCode       = "Postcode",
                        LearningDeliveryFAMs = new List <LearningDeliveryFAM>
                        {
                            new LearningDeliveryFAM()
                        },
                    },
                },
            };

            var frameworks = new List <LARSFramework>
            {
                new LARSFramework
                {
                    EffectiveFromNullable = new DateTime(2019, 1, 1),
                    EffectiveTo           = new DateTime(2020, 1, 1),
                    FworkCode             = 7,
                    ProgType         = 6,
                    PwayCode         = 5,
                    LARSFrameworkAim = new LARSFrameworkAim
                    {
                        EffectiveFrom          = new DateTime(2019, 1, 1),
                        EffectiveTo            = new DateTime(2020, 1, 1),
                        FrameworkComponentType = 1,
                    },
                    LARSFrameworkApprenticeshipFundings = new List <LARSFrameworkApprenticeshipFunding>
                    {
                        new LARSFrameworkApprenticeshipFunding()
                    },
                    LARSFrameworkCommonComponents = new List <LARSFrameworkCommonComponent>
                    {
                        new LARSFrameworkCommonComponent()
                    }
                },
                new LARSFramework
                {
                    EffectiveFromNullable = new DateTime(2019, 1, 1),
                    EffectiveTo           = new DateTime(2020, 1, 1),
                    FworkCode             = 9,
                    ProgType         = 9,
                    PwayCode         = 5,
                    LARSFrameworkAim = new LARSFrameworkAim
                    {
                        EffectiveFrom          = new DateTime(2019, 1, 1),
                        EffectiveTo            = new DateTime(2020, 1, 1),
                        FrameworkComponentType = 1,
                    }
                }
            };

            var larsLearningDelivery = new LARSLearningDelivery
            {
                LARSAnnualValues = new List <LARSAnnualValue>
                {
                    new LARSAnnualValue()
                },
                LARSLearningDeliveryCategories = new List <LARSLearningDeliveryCategory>
                {
                    new LARSLearningDeliveryCategory()
                },
                LARSFundings = new List <LARSFunding>
                {
                    new LARSFunding()
                },
                LARSFrameworks = frameworks
            };

            var learningDelivery = learner.LearningDeliveries.First();

            largeEmployersRefererenceDataServiceMock.Setup(l => l.LargeEmployersforEmpID(It.IsAny <int>())).Returns(new List <LargeEmployers> {
                new LargeEmployers()
            });
            larsReferenceDataServiceMock.Setup(l => l.LARSLearningDeliveryForLearnAimRef(learningDelivery.LearnAimRef)).Returns(larsLearningDelivery);
            organisationRefererenceDataServiceMock.Setup(o => o.OrganisationFundingForUKPRN(It.IsAny <int>()))
            .Returns(new List <OrgFunding> {
                new OrgFunding {
                    OrgFundFactType = Attributes.OrgFundFactorTypeAdultSkills
                }
            });
            organisationRefererenceDataServiceMock.Setup(o => o.SpecialistResourcesForCampusIdentifier(It.IsAny <string>()))
            .Returns(new List <CampusIdentifierSpecResource> {
                new CampusIdentifierSpecResource {
                    SpecialistResources = "Y", EffectiveFrom = new DateTime(2020, 8, 1)
                }
            });
            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.SFAAreaCostsForPostcode(learningDelivery.DelLocPostCode)).Returns(new List <SfaAreaCost> {
                new SfaAreaCost()
            });
            postcodesReferenceDataServiceMock.Setup(p => p.SFADisadvantagesForPostcode(learner.PostcodePrior)).Returns(new List <SfaDisadvantage> {
                new SfaDisadvantage()
            });

            return(new DataEntityMapper(
                       largeEmployersRefererenceDataServiceMock.Object,
                       larsReferenceDataServiceMock.Object,
                       organisationRefererenceDataServiceMock.Object,
                       postcodesReferenceDataServiceMock.Object).BuildGlobalDataEntity(learner, new Global()));
        }
Пример #4
0
        public void ProvideDtos_DtoAsExpected()
        {
            IMessage message = new Message
            {
                LearningProvider = new MessageLearningProvider
                {
                    UKPRN = 12345678
                },
                Learner = new MessageLearner[]
                {
                    new MessageLearner
                    {
                        LearnRefNumber          = "Learner_1",
                        CampId                  = "CampId1",
                        DateOfBirthSpecified    = true,
                        DateOfBirth             = new DateTime(1990, 8, 1),
                        PostcodePrior           = "Postcode",
                        LearnerEmploymentStatus = new MessageLearnerLearnerEmploymentStatus[]
                        {
                            new MessageLearnerLearnerEmploymentStatus
                            {
                                EmpIdSpecified = true,
                                EmpId          = 1,
                                DateEmpStatApp = new DateTime(2019, 8, 1),
                                EmpStat        = 2,
                            }
                        },
                        LearningDelivery = new MessageLearnerLearningDelivery[]
                        {
                            new MessageLearnerLearningDelivery
                            {
                                AchDateSpecified            = true,
                                AchDate                     = new DateTime(2018, 8, 1),
                                AddHoursSpecified           = true,
                                AddHours                    = 1,
                                AimType                     = 1,
                                LearnAimRef                 = "AimRef",
                                FundModel                   = 35,
                                AimSeqNumber                = 1,
                                CompStatus                  = 2,
                                DelLocPostCode              = "DelLocPostCode",
                                EmpOutcome                  = 2,
                                EmpOutcomeSpecified         = true,
                                FworkCodeSpecified          = true,
                                FworkCode                   = 1,
                                LearnActEndDateSpecified    = true,
                                LearnActEndDate             = new DateTime(2018, 8, 1),
                                LearnPlanEndDate            = new DateTime(2018, 8, 1),
                                LearnStartDate              = new DateTime(2018, 8, 1),
                                OrigLearnStartDateSpecified = true,
                                OrigLearnStartDate          = new DateTime(2018, 8, 1),
                                OtherFundAdjSpecified       = true,
                                OtherFundAdj                = 3,
                                OutcomeSpecified            = true,
                                Outcome                     = 4,
                                PriorLearnFundAdjSpecified  = true,
                                PriorLearnFundAdj           = 5,
                                ProgTypeSpecified           = true,
                                ProgType                    = 25,
                                PwayCodeSpecified           = true,
                                PwayCode                    = 1,
                                LearningDeliveryFAM         = new MessageLearnerLearningDeliveryLearningDeliveryFAM[]
                                {
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "1",
                                        LearnDelFAMType = "EEF"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "1",
                                        LearnDelFAMType = "FFI"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "1",
                                        LearnDelFAMType = "RES"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "1",
                                        LearnDelFAMType = "LDM"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "2",
                                        LearnDelFAMType = "LDM"
                                    },
                                    new MessageLearnerLearningDeliveryLearningDeliveryFAM
                                    {
                                        LearnDelFAMCode = "3",
                                        LearnDelFAMType = "LDM"
                                    }
                                },
                                AppFinRecord = new MessageLearnerLearningDeliveryAppFinRecord[]
                                {
                                    new MessageLearnerLearningDeliveryAppFinRecord
                                    {
                                        AFinAmount = 1,
                                        AFinCode   = 1,
                                        AFinDate   = new DateTime(2018, 8, 1),
                                        AFinType   = "PMR"
                                    },
                                    new MessageLearnerLearningDeliveryAppFinRecord
                                    {
                                        AFinAmount = 1,
                                        AFinCode   = 1,
                                        AFinDate   = new DateTime(2018, 8, 1),
                                        AFinType   = "TNP"
                                    }
                                }
                            }
                        }
                    }
                }
            };

            var expectedDto = new FM35LearnerDto
            {
                LearnRefNumber            = "Learner_1",
                CampId                    = "CampId1",
                DateOfBirth               = new DateTime(1990, 8, 1),
                PostcodePrior             = "Postcode",
                LearnerEmploymentStatuses = new List <LearnerEmploymentStatus>
                {
                    new LearnerEmploymentStatus
                    {
                        EmpId          = 1,
                        DateEmpStatApp = new DateTime(2019, 8, 1),
                        EmpStat        = 2
                    }
                },
                LearningDeliveries = new List <LearningDelivery>
                {
                    new LearningDelivery
                    {
                        AchDate              = new DateTime(2018, 8, 1),
                        AimType              = 1,
                        AddHours             = 1,
                        LearnAimRef          = "AimRef",
                        FundModel            = 35,
                        AimSeqNumber         = 1,
                        CompStatus           = 2,
                        DelLocPostCode       = "DelLocPostCode",
                        EmpOutcome           = 2,
                        FworkCode            = 1,
                        LearnActEndDate      = new DateTime(2018, 8, 1),
                        LearnPlanEndDate     = new DateTime(2018, 8, 1),
                        LearnStartDate       = new DateTime(2018, 8, 1),
                        OrigLearnStartDate   = new DateTime(2018, 8, 1),
                        OtherFundAdj         = 3,
                        Outcome              = 4,
                        PriorLearnFundAdj    = 5,
                        ProgType             = 25,
                        PwayCode             = 1,
                        LearningDeliveryFAMs = new List <LearningDeliveryFAM>
                        {
                            new LearningDeliveryFAM
                            {
                                LearnDelFAMCode = "1",
                                LearnDelFAMType = "EEF"
                            },
                            new LearningDeliveryFAM
                            {
                                LearnDelFAMCode = "1",
                                LearnDelFAMType = "FFI"
                            },
                            new LearningDeliveryFAM
                            {
                                LearnDelFAMCode = "1",
                                LearnDelFAMType = "RES"
                            },
                            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);
        }