public void GetEarningsForPeriod_OnlyMatchesCorrectAttributesAndPeriod() { var earningsAndPaymentsBuilder = new EarningsAndPaymentsBuilder() as IEarningsAndPaymentsBuilder; var periodisedValuesForPayment = new List <ApprenticeshipPriceEpisodePeriodisedValues> { new ApprenticeshipPriceEpisodePeriodisedValues { AttributeName = "ATTRIB1", Period_1 = 1 }, new ApprenticeshipPriceEpisodePeriodisedValues { AttributeName = "ATTRIB2", Period_1 = 2 }, new ApprenticeshipPriceEpisodePeriodisedValues { AttributeName = "ATTRIB4", Period_1 = 4 }, new ApprenticeshipPriceEpisodePeriodisedValues { AttributeName = "ATTRIB2", Period_2 = 8 }, }; var attributeTypes = new string[] { "attrib1", "attrib2" }; var result = earningsAndPaymentsBuilder.GetEarningsForPeriod(periodisedValuesForPayment, attributeTypes, pvp => pvp.Period_1); result.Should().Be(3); }
public void GetEarningsForPeriod_EmptyArraysDontCrash() { var earningsAndPaymentsBuilder = new EarningsAndPaymentsBuilder() as IEarningsAndPaymentsBuilder; var periodisedValuesForPayment = new List <ApprenticeshipPriceEpisodePeriodisedValues> { }; var attributeTypes = new string[] { }; var result = earningsAndPaymentsBuilder.GetEarningsForPeriod(periodisedValuesForPayment, attributeTypes, pvp => pvp.Period_1); result.Should().Be(0); }