public void TestEarningPeriodToCalculatedRequiredIncentiveAmountMapping()
        {
            var earningPeriod = new EarningPeriod
            {
                ApprenticeshipId             = 101,
                ApprenticeshipPriceEpisodeId = 102,
                Period = 1,
                ApprenticeshipEmployerType = ApprenticeshipEmployerType.Levy
            };
            var requiredPayment = new CalculatedRequiredIncentiveAmount
            {
                Type = IncentivePaymentType.OnProgrammeMathsAndEnglish
            };

            // act
            mapper.Map(earningPeriod, requiredPayment);
            var mathsAndEnglishPayment = requiredPayment;

            Assert.AreEqual(earningPeriod.Period, mathsAndEnglishPayment.DeliveryPeriod);
            Assert.AreEqual(earningPeriod.ApprenticeshipId, mathsAndEnglishPayment.ApprenticeshipId);
            Assert.AreEqual(earningPeriod.ApprenticeshipPriceEpisodeId,
                            mathsAndEnglishPayment.ApprenticeshipPriceEpisodeId);
            Assert.AreEqual(earningPeriod.ApprenticeshipEmployerType,
                            mathsAndEnglishPayment.ApprenticeshipEmployerType);
            Assert.AreEqual(IncentivePaymentType.OnProgrammeMathsAndEnglish, mathsAndEnglishPayment.Type);
        }
Esempio n. 2
0
        public SfaFullyFundedFundingSourcePaymentEvent Map(CalculatedRequiredIncentiveAmount requiredPaymentsEvent,
                                                           FundingSourcePayment payment)
        {
            var sfaFullyFundedPayment = mapper.Map <SfaFullyFundedFundingSourcePaymentEvent>(requiredPaymentsEvent);

            sfaFullyFundedPayment.AmountDue = payment.AmountDue;
            return(sfaFullyFundedPayment);
        }
        private bool MatchIncentive(CalculatedRequiredIncentiveAmount expected, CalculatedRequiredIncentiveAmount actual)
        {
            if (expected == null)
            {
                return(true);
            }

            return(expected.Type == actual.Type);
        }
Esempio n. 4
0
        private CalculatedRequiredIncentiveAmount BuildIncentiveRequiredPaymentEvent(RequiredPayment requiredPayment)
        {
            var paymentEvent = new CalculatedRequiredIncentiveAmount();

            MapCommon(requiredPayment, paymentEvent);
            paymentEvent.Type         = (IncentivePaymentType)requiredPayment.Type;
            paymentEvent.ContractType = (ContractType)ContractType;
            return(paymentEvent);
        }
        public void MathsAndEnglishRequiredMappingShouldMapEarningEventIdCorrectly()
        {
            var earningEventId       = Guid.NewGuid();
            var requiredPaymentEvent = new CalculatedRequiredIncentiveAmount() as PeriodisedRequiredPaymentEvent;
            var earningEvent         = new PayableFunctionalSkillEarningEvent {
                EarningEventId = earningEventId, PriceEpisodes = new List <PriceEpisode>(), LearningAim = new LearningAim()
            };
            var actual = mapper.Map(earningEvent, requiredPaymentEvent);

            actual.EarningEventId.Should().Be(earningEventId);
        }
Esempio n. 6
0
        public PeriodisedRequiredPaymentEvent Create(EarningType earningType, int transactionType)
        {
            PeriodisedRequiredPaymentEvent paymentEvent = null;

            switch (earningType)
            {
            case EarningType.CoInvested:
                if (IsValidPaymentType <OnProgrammeEarningType>(transactionType))
                {
                    paymentEvent = new CalculatedRequiredCoInvestedAmount
                    {
                        OnProgrammeEarningType = (OnProgrammeEarningType)transactionType,
                    };
                }

                break;

            case EarningType.Incentive:
                if (IsValidPaymentType <IncentivePaymentType>(transactionType))
                {
                    paymentEvent = new CalculatedRequiredIncentiveAmount
                    {
                        Type = (IncentivePaymentType)transactionType,
                    };
                }

                break;

            case EarningType.Levy:
                if (IsValidPaymentType <OnProgrammeEarningType>(transactionType))
                {
                    paymentEvent = new CalculatedRequiredLevyAmount
                    {
                        OnProgrammeEarningType = (OnProgrammeEarningType)transactionType,
                    };
                }

                break;

            default:
                throw new InvalidOperationException(
                          $"Unknown earning type found: {earningType:G}. Cannot create the PeriodisedRequiredPaymentEvent.");
            }

            if (paymentEvent == null)
            {
                logger.LogError(
                    $"Invalid EarningType and TransactionType combination: EarningType: {earningType:G}, TransactionType: {transactionType}");
            }

            return(paymentEvent);
        }
        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);
        }
Esempio n. 8
0
        public SfaFullyFundedFundingSourcePaymentEvent Process(CalculatedRequiredIncentiveAmount requiredPayment)
        {
            var paymentAmount = sfaFullyFundedPaymentProcessor.CalculatePaymentAmount(requiredPayment.AmountDue);

            return(mapper.Map(requiredPayment, paymentAmount));
        }