Пример #1
0
        private void ValidateFunctionalSkillEarningsSplitAndType(FunctionalSkillEarningsEvent act1FsEarning, Type expectedRedundancyType)
        {
            var redundancyDate   = new DateTime(1920, 7, 1);
            var redundancyPeriod = redundancyDate.GetPeriodFromDate();

            act1FsEarning.Earnings.ToList().ForEach(fse => fse.Periods.Should().HaveCount(12));

            var events = service.SplitFunctionSkillEarningByRedundancyDate(act1FsEarning, redundancyDate);

            events.Should().HaveCount(2);
            var originalEvent = events[0];

            originalEvent.Should().BeOfType(act1FsEarning.GetType());

            var expectedOriginalCount = redundancyPeriod - 1;

            originalEvent.Earnings.ToList().ForEach(ope =>
            {
                ope.Periods.Should().HaveCount(expectedOriginalCount);
                Assert.IsTrue(ope.Periods.ToList().All(p => p.Period < redundancyPeriod));
            });

            var redundancyEvent = events[1];

            var expectedRedundancyPeriod = 12 - redundancyPeriod + 1;

            redundancyEvent.Should().BeOfType(expectedRedundancyType);
            redundancyEvent.Earnings.ToList().ForEach(ope =>
            {
                ope.Periods.Should().HaveCount(expectedRedundancyPeriod);
                Assert.IsTrue(ope.Periods.ToList().All(p => p.Period >= redundancyPeriod));
                Assert.IsTrue(ope.Periods.ToList().All(p => p.SfaContributionPercentage == 1m));
            });
        }