public void Execute_DoesNotAddEnrollmentsToReport(bool reportHasEnrollmentsReference) { CdcReport report; using (var context = new TestHedwigContextProvider().Context) { report = ReportHelper.CreateCdcReport(context) as CdcReport; var site = SiteHelper.CreateSite(context, organization: report.Organization); var enrollments = EnrollmentHelper.CreateEnrollments(context, 1, site: site); report.Enrollments = enrollments; } if (!reportHasEnrollmentsReference) { report.Enrollments = null; } using (var context = new TestHedwigContextProvider().Context) { context.Attach(report); var _serviceProvider = new Mock <IServiceProvider>(); _serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <Enrollment> >))) .Returns(new List <IValidationRule <Enrollment> >()); var _validator = new NonBlockingValidator(_serviceProvider.Object); var _reports = new ReportRepository(context); // when var rule = new EnrollmentsAreValid(_validator, _reports); rule.Execute(report, new NonBlockingValidationContext()); // then Assert.Equal(reportHasEnrollmentsReference, report.Enrollments != null); } }
public void Execute_DoesNotAddFundingsToEnrollment(bool enrollmentHasFundingsReference) { Enrollment enrollment; using (var context = new TestHedwigContextProvider().Context) { enrollment = EnrollmentHelper.CreateEnrollment(context); FundingHelper.CreateFunding(context, enrollment: enrollment); } if (!enrollmentHasFundingsReference) { enrollment.Fundings = null; } using (var context = new TestHedwigContextProvider().Context) { // Only attach found entity to avoid attaching the entire object graph // (which would find & attach the fundings navigation property) context.Attach(context.Find(enrollment.GetType(), enrollment.Id)); var _serviceProvider = new Mock <IServiceProvider>(); _serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <Funding> >))) .Returns(new List <IValidationRule <Funding> >()); var _validator = new NonBlockingValidator(_serviceProvider.Object); var _fundings = new FundingRepository(context); // when var rule = new FundingsAreValid(_validator, _fundings); rule.Execute(enrollment, new NonBlockingValidationContext()); // then Assert.Equal(enrollmentHasFundingsReference, enrollment.Fundings != null); } }
public void Execute_DoesNotAddEnrollmentToFunding(bool fundingHasEnrollmentReference) { Funding funding; using (var context = new TestHedwigContextProvider().Context) { funding = FundingHelper.CreateFunding(context); } if (!fundingHasEnrollmentReference) { funding.Enrollment = null; } using (var context = new TestHedwigContextProvider().Context) { // Only attach found entity to avoid attaching the entire object graph // (which would find & attach the enrollment navigation property) context.Attach(context.Find(funding.GetType(), funding.Id)); var _serviceProvider = new Mock <IServiceProvider>(); var _validator = new NonBlockingValidator(_serviceProvider.Object); var _fundings = new FundingRepository(context); var _enrollments = new EnrollmentRepository(context); var _reportingPeriods = new ReportingPeriodRepository(context); // when var rule = new FundingTimelinesAreValid(_fundings, _enrollments, _reportingPeriods); rule.Execute(funding, new NonBlockingValidationContext()); // then Assert.Equal(fundingHasEnrollmentReference, funding.Enrollment != null); } }
public void Validate_Rules_ErrorNoError() { // if var errorRule = new Mock <IValidationRule <TestValidatableEntity> >(); errorRule.Setup(r => r.Execute(It.IsAny <TestValidatableEntity>(), It.IsAny <NonBlockingValidationContext>())) .Returns(new ValidationError(It.IsAny <string>(), field: It.IsAny <string>())); var noErrorRule = new Mock <IValidationRule <TestValidatableEntity> >(); noErrorRule.Setup(r => r.Execute(It.IsAny <TestValidatableEntity>(), It.IsAny <NonBlockingValidationContext>())) .Returns <ValidationError>(null); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <TestValidatableEntity> >))) .Returns(new List <IValidationRule <TestValidatableEntity> > { errorRule.Object, noErrorRule.Object }); var validateable = new TestValidatableEntity(); // when var validator = new NonBlockingValidator(serviceProvider.Object); validator.Validate(validateable); // then Assert.Single(validateable.ValidationErrors); }
public void Validate_NoRules() { // if var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <TestValidatableEntity> >))) .Returns(new List <IValidationRule <TestValidatableEntity> >()); var validateable = new TestValidatableEntity(); // when var validator = new NonBlockingValidator(serviceProvider.Object); validator.Validate(validateable); // then Assert.Empty(validateable.ValidationErrors); }
public void Validate_Rules_NullEntity() { // if var rule = new Mock <IValidationRule <TestValidatableEntity> >(); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <TestValidatableEntity> >))) .Returns(new List <IValidationRule <TestValidatableEntity> > { rule.Object }); // when var validator = new NonBlockingValidator(serviceProvider.Object); validator.Validate(null as TestValidatableEntity); // then rule.Verify(rule => rule.Execute(It.IsAny <TestValidatableEntity>(), It.IsAny <NonBlockingValidationContext>()), Times.Never()); }
public void Execute_ReturnsError_IfAnyEnrollmentIsNotValid( bool enrollmentsNotValid, bool doesError ) { // if var e1 = new Enrollment(); var e2 = new Enrollment(); var enrollments = new List <Enrollment> { e1, e2 }; var report = new CdcReport { Enrollments = enrollments }; var enrollmentRule = new Mock <IValidationRule <Enrollment> >(); var enrollmentResult = enrollmentsNotValid ? null : new ValidationError("message", field: "field"); enrollmentRule.Setup(er => er.Execute(e1, It.IsAny <NonBlockingValidationContext>())) .Returns(enrollmentResult); var _serviceProvider = new Mock <IServiceProvider>(); _serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <Enrollment> >))) .Returns(new List <IValidationRule <Enrollment> > { enrollmentRule.Object }); var _validator = new NonBlockingValidator(_serviceProvider.Object); var _reports = new Mock <IReportRepository>(); // when var rule = new EnrollmentsAreValid(_validator, _reports.Object); var result = rule.Execute(report, new NonBlockingValidationContext()); // Then Assert.Equal(doesError, result != null); }
public void Execute_ReturnsError_IfFundingIsNotValid( bool fundingIsValid, bool doesError ) { // if var funding = new Funding(); var enrollment = new Enrollment { Id = 1, Fundings = new List <Funding> { funding } }; var fundingRule = new Mock <IValidationRule <Funding> >(); var fundingResult = fundingIsValid ? null : new ValidationError("message", field: "field"); fundingRule.Setup(cr => cr.Execute(funding, It.IsAny <NonBlockingValidationContext>())) .Returns(fundingResult); var _serviceProvider = new Mock <IServiceProvider>(); _serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <Funding> >))) .Returns(new List <IValidationRule <Funding> > { fundingRule.Object }); var _validator = new NonBlockingValidator(_serviceProvider.Object); var _fundings = new Mock <IFundingRepository>(); // when var rule = new FundingsAreValid(_validator, _fundings.Object); var result = rule.Execute(enrollment, new NonBlockingValidationContext()); // then Assert.Equal(doesError, result != null); }
public void Execute_ReturnsError_IfFamilyIsNotValid( bool familyIsValid, bool doesError ) { // if var family = new Family(); var child = new Child { FamilyId = 1, Family = family }; var familyRule = new Mock <IValidationRule <Family> >(); var familyResult = familyIsValid ? null : new ValidationError("message", field: "field"); familyRule.Setup(fr => fr.Execute(family, It.IsAny <NonBlockingValidationContext>())) .Returns(familyResult); var _serviceProvider = new Mock <IServiceProvider>(); _serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <Family> >))) .Returns(new List <IValidationRule <Family> > { familyRule.Object }); var _validator = new NonBlockingValidator(_serviceProvider.Object); var _families = new Mock <IFamilyRepository>(); // when var rule = new FamilyIsValid(_validator, _families.Object); var result = rule.Execute(child, new NonBlockingValidationContext()); // then Assert.Equal(doesError, result != null); }
public void Execute_ReturnsError_IfChildIsNotValid( bool childIsValid, bool doesError ) { // if var child = new Child(); var enrollment = new Enrollment { ChildId = Guid.NewGuid(), Child = child }; var childRule = new Mock <IValidationRule <Child> >(); var childResult = childIsValid ? null : new ValidationError("message", field: "field"); childRule.Setup(cr => cr.Execute(child, It.IsAny <NonBlockingValidationContext>())) .Returns(childResult); var _serviceProvider = new Mock <IServiceProvider>(); _serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable <IValidationRule <Child> >))) .Returns(new List <IValidationRule <Child> > { childRule.Object }); var _validator = new NonBlockingValidator(_serviceProvider.Object); var _children = new Mock <IChildRepository>(); // when var rule = new ChildIsValid(_validator, _children.Object); var result = rule.Execute(enrollment, new NonBlockingValidationContext()); // then Assert.Equal(doesError, result != null); }