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);
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }