public void Execute_WithReportParentEntity_ReturnsError_IfEnrollmentFunded_AndDeterminationDateNotValid( bool enrollmentIsFunded, bool dateIsValid, bool doesError ) { // if var enrollment = new Enrollment { Fundings = new List <Funding>() }; if (enrollmentIsFunded) { enrollment.Fundings.Add(new Funding { Source = FundingSource.CDC }); } var periodEnd = DateTime.Now.Date.AddDays(-10); var report = new CdcReport(); var reportingPeriod = new ReportingPeriod { PeriodEnd = periodEnd }; report.GetType().GetProperty(nameof(report.ReportingPeriod)).SetValue(report, reportingPeriod, null); var determination = new FamilyDetermination { // a valid date is < 1 year older than report reporting period end DeterminationDate = dateIsValid ? periodEnd.AddMonths(-8) : periodEnd.AddMonths(-18) }; // when var fundings = new Mock <IFundingRepository>(); var reportingPeriods = new Mock <IReportingPeriodRepository>(); var rule = new IfEnrollmentFunded_DeterminationDateValid(fundings.Object, reportingPeriods.Object); var context = new NonBlockingValidationContext(); context.AddParentEntity(enrollment); context.AddParentEntity(report); var result = rule.Execute(determination, context); // then Assert.Equal(doesError, result != null); }
public void Execute_ReturnsError_IfEnrollmentFunded_AndDeterminationDateNotValid( bool enrollmentIsFunded, bool dateIsValid, bool doesError ) { // if var enrollment = new Enrollment { Fundings = new List <Funding>() }; if (enrollmentIsFunded) { enrollment.Fundings.Add(new Funding { Source = FundingSource.CDC }); } var determination = new FamilyDetermination { // a valid date is < 1 year older than TODAY DeterminationDate = dateIsValid ? DateTime.Now.Date.AddMonths(-8) : DateTime.Now.Date.AddMonths(-18) }; // when var fundings = new Mock <IFundingRepository>(); var reportingPeriods = new Mock <IReportingPeriodRepository>(); var rule = new IfEnrollmentFunded_DeterminationDateValid(fundings.Object, reportingPeriods.Object); var context = new NonBlockingValidationContext(); context.AddParentEntity(enrollment); var result = rule.Execute(determination, context); // then Assert.Equal(doesError, result != null); }