public void ContractTypeIsCorrectForFunctionalSkills(Type requiredPaymentEventType, ContractType expectedContractType)
        {
            var requiredPaymentEvent = Activator.CreateInstance(requiredPaymentEventType) as PeriodisedRequiredPaymentEvent;

            requiredPaymentEvent.ContractType = expectedContractType;

            IFunctionalSkillEarningEvent earningEvent = null;

            switch (expectedContractType)
            {
            case ContractType.Act1:
                earningEvent = new PayableFunctionalSkillEarningEvent {
                    PriceEpisodes = new List <PriceEpisode>(), LearningAim = new LearningAim()
                };
                break;

            case ContractType.Act2:
                earningEvent = new Act2FunctionalSkillEarningsEvent {
                    PriceEpisodes = new List <PriceEpisode>(), LearningAim = new LearningAim()
                };
                break;
            }

            var actual = mapper.Map(earningEvent, requiredPaymentEvent);

            actual.ContractType.Should().Be(expectedContractType);
        }
        public void TestFunctionalSkillEarningEventMap(IFunctionalSkillEarningEvent functionalSkillEarningsEvent)
        {
            // arrange
            PeriodisedRequiredPaymentEvent requiredPayment = new CalculatedRequiredIncentiveAmount
            {
                Ukprn   = ukprn,
                Learner = new Learner {
                    ReferenceNumber = "R", Uln = uln
                },
                StartDate = DateTime.Today.AddDays(-10)
            };

            // act
            mapper.Map(functionalSkillEarningsEvent, requiredPayment);

            // assert
            AssertCommonProperties(requiredPayment, functionalSkillEarningsEvent);
            Assert.AreEqual(requiredPayment.LearningAim.FundingLineType, functionalSkillEarningsEvent.LearningAim.FundingLineType);
            functionalSkillEarningsEvent.StartDate.Should().Be(requiredPayment.StartDate);
        }