public ReportsController(GetAllLocalEducationAgenciesQuery getAllLocalEducationAgenciesQuery
                          , StudentsByProgramQuery studentsByProgramQuery
                          , StudentEconomicSituationReportQuery studentEconomicSituationReportQuery
                          , TotalEnrollmentQuery totalEnrollmentQuery
                          , GetSchoolsBySchoolTypeQuery getSchoolsBySchoolTypeQuery
                          , StudentEnrollmentByGenderQuery studentEnrollmentByGenderQuery
                          , StudentEnrollmentByRaceQuery studentEnrollmentByRaceQuery
                          , StudentEnrollmentByEthnicityQuery studentEnrollmentByEthnicityQuery
                          , InstanceContext instanceContext)
 {
     _getAllLocalEducationAgenciesQuery   = getAllLocalEducationAgenciesQuery;
     _studentsByProgramQuery              = studentsByProgramQuery;
     _studentEconomicSituationReportQuery = studentEconomicSituationReportQuery;
     _totalEnrollmentQuery              = totalEnrollmentQuery;
     _getSchoolsBySchoolTypeQuery       = getSchoolsBySchoolTypeQuery;
     _studentEnrollmentByGenderQuery    = studentEnrollmentByGenderQuery;
     _studentEnrollmentByRaceQuery      = studentEnrollmentByRaceQuery;
     _studentEnrollmentByEthnicityQuery = studentEnrollmentByEthnicityQuery;
     _instanceContext = instanceContext;
 }
        public void ShouldRetrieveTotalEnrollment()
        {
            var localEducationAgencyId = GetNewLocalEducationAgencyId();
            var schoolId = GetNewSchool(localEducationAgencyId);
            var student1 = GetNewStudentWithSchoolAssociation(schoolId);
            var student2 = GetNewStudentWithSchoolAssociation(schoolId);
            var studentInactiveTomorrow = GetNewStudentWithSchoolAssociation(schoolId);  //should still be counted

            SetStudentInactive(studentInactiveTomorrow.StudentUsi, schoolId, DateTime.Today.AddDays(1));

            var inactiveStudentThatShouldNotAppearInReport = GetNewStudentWithSchoolAssociation(schoolId);

            SetStudentInactive(inactiveStudentThatShouldNotAppearInReport.StudentUsi, schoolId);

            var otherLocalEducationAgencyId = GetNewLocalEducationAgencyId();
            var otherSchoolId = GetNewSchool(otherLocalEducationAgencyId);
            var otherStudent1 = GetNewStudentWithSchoolAssociation(otherSchoolId);
            var otherStudent2 = GetNewStudentWithSchoolAssociation(otherSchoolId);

            var report = new TotalEnrollmentQuery(TestConnectionProvider);
            var result = report.Execute(CloudOdsDatabaseNames.ProductionOds, ApiMode.Sandbox, localEducationAgencyId);

            result.EnrollmentCount.ShouldBe(3);
        }