public async Task GetEnrollmentsForSite_FiltersByDates(
            string entry,
            string exit,
            string from,
            string to,
            bool included
            )
        {
            using (var context = new TestHedwigContextProvider().Context)
            {
                // if enrollment exists with entry and exit
                var enrollment = EnrollmentHelper.CreateEnrollment(context, entry, exit);

                // when repo is queried with to and from
                var enrollmentRepo = new EnrollmentRepository(context);
                var result         = await enrollmentRepo.GetEnrollmentsForSiteAsync(
                    enrollment.SiteId,
                    DateTime.Parse(from),
                    DateTime.Parse(to)
                    );

                var resultIds = result.Select(e => e.Id);

                // then
                Assert.Equal(included, resultIds.Contains(enrollment.Id));
            }
        }
        public async Task GetEnrollmentsForSite_ReturnsEnrollmentsWithSiteId_IncludesEntities(
            string[] include,
            bool includeFundings,
            bool includeChildren,
            bool includeFamilies,
            bool includeDeterminations
            )
        {
            int[] ids;
            int   siteId;

            using (var context = new TestHedwigContextProvider().Context)
            {
                var site        = SiteHelper.CreateSite(context);
                var enrollments = EnrollmentHelper.CreateEnrollments(context, 3, site: site);
                ids    = enrollments.Select(e => e.Id).ToArray();
                siteId = site.Id;
            }

            using (var context = new TestHedwigContextProvider().Context)
            {
                var enrollmentRepo = new EnrollmentRepository(context);
                var res            = await enrollmentRepo.GetEnrollmentsForSiteAsync(siteId, include : include);

                Assert.Equal(ids.OrderBy(id => id), res.Select(e => e.Id).OrderBy(id => id));
                Assert.Equal(includeFundings, res.TrueForAll(e => e.Fundings != null));
                Assert.Equal(includeChildren, res.TrueForAll(e => e.Child != null));
                Assert.Equal(includeFamilies, res.TrueForAll(e => e.Child != null && e.Child.Family != null));
                Assert.Equal(includeDeterminations, res.TrueForAll(e => e.Child != null && e.Child.Family != null && e.Child.Family.Determinations != null));
            }
        }
Пример #3
0
        public async Task GetEnrollmentsForSite_FiltersByDates(
            string entry,
            string exit,
            string from,
            string to,
            bool included
            )
        {
            var mapper = new MapperConfiguration(opts =>
            {
                opts.AddProfile(new EnrollmentProfile());
                opts.AddProfile(new FundingProfile());
                opts.AddProfile(new ChildProfile());
                opts.AddProfile(new FamilyProfile());
                opts.AddProfile(new SiteProfile());
            }).CreateMapper();

            using (var context = new TestHedwigContextProvider().Context)
            {
                // if enrollment exists with entry and exit
                var enrollment = EnrollmentHelper.CreateEnrollment(context, entry, exit);

                // when repo is queried with to and from
                var enrollmentRepo = new EnrollmentRepository(context, mapper);
                var result         = await enrollmentRepo.GetEnrollmentsForSiteAsync(
                    enrollment.SiteId,
                    DateTime.Parse(from),
                    DateTime.Parse(to)
                    );

                var resultIds = result.Select(e => e.Id);

                // then
                Assert.Equal(included, resultIds.Contains(enrollment.Id));
            }
        }