public static int FundingCapOn(this TrainingProgramme course, DateTime date) { //todo: would probably be better to return int? null or throw if out of range if (!course.IsActiveOn(date)) { return(0); } var applicableFundingPeriod = course.FundingPeriods.FirstOrDefault(x => GetStatusOn(x.EffectiveFrom, x.EffectiveTo, date) == TrainingProgrammeStatus.Active); return(applicableFundingPeriod?.FundingCap ?? 0); }
public void ThenTheCourseEffectiveDatesAreUsedToDetermineTheStatus(DateTime?courseStart, DateTime?courseEnd, DateTime effectiveDate, bool expectStatus) { //Arrange var course = new TrainingProgramme { EffectiveFrom = courseStart, EffectiveTo = courseEnd }; //Act var result = course.IsActiveOn(effectiveDate); //Assert Assert.AreEqual(expectStatus, result); }
public void ThenIfWithinCourseEffectiveRangeThenIsActive(DateTime?courseStart, DateTime?courseEnd, DateTime effectiveDate, bool expectIsActive) { //Arrange var course = new TrainingProgramme { EffectiveFrom = courseStart, EffectiveTo = courseEnd }; //Act var result = course.IsActiveOn(effectiveDate); //Assert Assert.AreEqual(expectIsActive, result); }