protected override void EstablishContext()
        {
            schoolCategoryProvider = mocks.StrictMock<ISchoolCategoryProvider>();
            metricCorrelationService = mocks.StrictMock<IMetricCorrelationProvider>();
            footnoteRepository = mocks.StrictMock<IRepository<MetricInstanceFootnote>>();
            classroomMetricsProvider = mocks.StrictMock<IClassroomMetricsProvider>();
            listMetadataProvider = mocks.StrictMock<IListMetadataProvider>();
            metadataListIdResolver = mocks.StrictMock<IMetadataListIdResolver>();
            metricNodeResolver = mocks.StrictMock<IMetricNodeResolver>();
            StudentMetricProvider = mocks.StrictMock<IStudentMetricsProvider>();
            gradeLevelUtilitiesProvider = mocks.StrictMock<IGradeLevelUtilitiesProvider>();
            schoolMetricStudentListRepository = mocks.StrictMock<IRepository<SchoolMetricStudentList>>();

            Expect.Call(StudentMetricProvider.GetOrderedStudentList(null, null, null)).Repeat.Any().IgnoreArguments().Return(GetSuppliedStudentList());
            Expect.Call(StudentMetricProvider.GetStudentsWithMetrics(null)).Repeat.Any().IgnoreArguments().Return(GetStudentListPageData());
            Expect.Call(metricCorrelationService.GetRenderingParentMetricVariantIdForStudent(suppliedMetricVariantId, suppliedSchoolId)).Repeat.Any().Return(new MetricCorrelationProvider.MetricRenderingContext { MetricVariantId = suppliedRenderingMetricVariantId, ContextMetricVariantId = suppliedContextMetricVariantId });
            Expect.Call(metricNodeResolver.GetMetricNodeForSchoolFromMetricVariantId(suppliedSchoolId, suppliedMetricVariantId)).Repeat.AtLeastOnce().Return(GetSuppliedMetricMetadataNode());
            Expect.Call(footnoteRepository.GetAll()).Repeat.Any().Return(GetSuppliedMetricFootnotes());
            Expect.Call(metadataListIdResolver.GetListId(ListType.ClassroomGeneralOverview, SchoolCategory.HighSchool)).IgnoreArguments().Repeat.Any().Return(1);
            Expect.Call(schoolMetricStudentListRepository.GetAll()).Return(GetSchoolMetricStudentList());

            suppliedMetadataColumnGroupList = GetSuppliedListMetadata();
            Expect.Call(listMetadataProvider.GetListMetadata(1)).IgnoreArguments().Repeat.Any().Return(suppliedMetadataColumnGroupList);

            Expect.Call(classroomMetricsProvider.GetAdditionalMetrics(null, null))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(new List<StudentWithMetrics.Metric>());

            expectedStudentIds.Clear();
            expectedStudentIds.Add(suppliedStudentId1);
            expectedStudentIds.Add(suppliedStudentId2);
            expectedStudentIds.Add(suppliedStudentId3);
            expectedStudentIds.Add(suppliedStudentId4);

            expectedSchoolCategory = SchoolCategory.HighSchool;

            base.EstablishContext();
        }
        protected override void EstablishContext()
        {
            schoolCategoryProvider = mocks.StrictMock<ISchoolCategoryProvider>();
            uniqueListProvider = mocks.StrictMock<IUniqueListIdProvider>();
            metricCorrelationService = mocks.StrictMock<IMetricCorrelationProvider>();
            classroomMetricsProvider = mocks.StrictMock<IPriorYearClassroomMetricsProvider>();
            listMetadataProvider = mocks.StrictMock<IListMetadataProvider>();
            metadataListIdResolver = mocks.StrictMock<IMetadataListIdResolver>();
            metricNodeResolver = mocks.StrictMock<IMetricNodeResolver>();
            warehouseAvailabilityProvider = mocks.StrictMock<IWarehouseAvailabilityProvider>();
            maxPriorYearProvider = mocks.StrictMock<IMaxPriorYearProvider>();
            gradeLevelUtilitiesProvider = mocks.StrictMock<IGradeLevelUtilitiesProvider>();
            priorYearStudentMetricsProvider = mocks.StrictMock<IPriorYearStudentMetricsProvider>();
            studentMetricsProvider = mocks.StrictMock<IStudentMetricsProvider>();

            Expect.Call(maxPriorYearProvider.Get(suppliedLocalEducationAgencyId)).Repeat.Any().Return(2011);
            Expect.Call(metricNodeResolver.GetMetricNodeForSchoolFromMetricVariantId(suppliedSchoolId,
                suppliedMetricVariantId)).Repeat.Any().Return(GetSuppliedMetricMetadataNode());
            Expect.Call(metricCorrelationService.GetRenderingParentMetricVariantIdForStudent(suppliedMetricVariantId,
                suppliedSchoolId)).Repeat.Any()
                .Return(new MetricCorrelationProvider.MetricRenderingContext
                {
                    MetricVariantId = suppliedRenderingMetricVariantId,
                    ContextMetricVariantId = suppliedContextMetricVariantId
                });
            Expect.Call(uniqueListProvider.GetUniqueId(suppliedMetricVariantId)).Repeat.Any().Return(suppliedUniqueListId);
            Expect.Call(metadataListIdResolver.GetListId(ListType.ClassroomGeneralOverview, SchoolCategory.HighSchool))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(1);
            Expect.Call(listMetadataProvider.GetListMetadata(1))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(GetSuppliedListMetadata());
            Expect.Call(priorYearStudentMetricsProvider.GetStudentList(GetPriorYearStudentListWithMetricsQueryOptions()))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(GetExpectedPriorYearStudentList());
            Expect.Call(studentMetricsProvider.GetOrderedStudentList(GetStudentListWithMetricsQueryOptions()))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(
                    GetStudentSectionEntityListData()
                        .Where(x => expectedStudentIds.Contains(x.StudentUSI) && x.SchoolId == suppliedSchoolId)
                        .AsQueryable());
            Expect.Call(
                priorYearStudentMetricsProvider.GetStudentsWithMetrics(GetPriorYearStudentListWithMetricsQueryOptions()))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(
                    GetSuppliedPriorYearSchoolMetricStudentList()
                        .Where(x => expectedStudentIds.Contains(x.StudentUSI) && x.SchoolId == suppliedSchoolId));
            Expect.Call(studentMetricsProvider.GetStudentsWithMetrics(GetStudentListWithMetricsQueryOptions()))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(
                    GetStudentListSectionPageData()
                        .Where(x => expectedStudentIds.Contains(x.StudentUSI) && x.SchoolId == suppliedSchoolId)
                        .AsQueryable());
            Expect.Call(classroomMetricsProvider.GetAdditionalMetrics(null, null, null))
                .IgnoreArguments()
                .Repeat.Any()
                .Return(new List<StudentWithMetrics.Metric>());

            base.EstablishContext();
        }