/**
   * {@link #testGetEarlyAlertStudentOutreachReportWithFilters()}, Test to make sure all the filters
   * are implemented properly.
   */
  @Test
  public void testGetEarlyAlertStudentOutreachReportWithFilters()
      throws IOException, ObjectNotFoundException, JRException {
    final MockHttpServletResponse response = new MockHttpServletResponse();

    controller.getEarlyAlertStudentOutcomeReport(
        response,
        "earlyAlertOutreachIds",
        ObjectStatus.ACTIVE,
        null,
        Stubs.HomeDepartmentFixture.MATHEMATICS.name(),
        Stubs.PersonFixture.COACH_1.id(),
        null,
        Lists.newArrayList(Stubs.StudentTypeFixture.ILP.id()),
        Lists.newArrayList(Stubs.ServiceReasonFixture.TEST_SERVICE_REASON.id()),
        Stubs.ProgramStatusFixture.ACTIVE.id(),
        Lists.newArrayList(Stubs.SpecialServiceGroupFixture.TEST_SSG.id()),
        Lists.newArrayList(Stubs.EarlyAlertOutcomeFixture.WAITING_FOR_RESPONSE.id()),
        Stubs.TermFixture.FALL_2012.code(),
        Stubs.DateFixture.START_FALL_2012.date(),
        Stubs.DateFixture.END_FALL_2012.date(),
        "csv");

    // "body" is the actual results and the header that describes its columns.
    // This is as opposed to rows which precede the header, which describe
    // the filtering criteria
    final List<String> expectedReportBodyLines = new ArrayList<String>(4);
    expectedReportBodyLines.add("FIRST,MIDDLE,LAST,STUDENT ID,EMAIL(SCHOOL),OUTREACH,COUNSELOR");
    expectedReportBodyLines.add(",,,,,,");
    expectReportBodyLines(expectedReportBodyLines, response, null);
  }
  @Test
  public void testGetEarlyAlertStudentOutreachReportWithNoFilter()
      throws IOException, ObjectNotFoundException, JRException {

    sessionFactory.getCurrentSession().flush();

    final MockHttpServletResponse response = new MockHttpServletResponse();

    controller.getEarlyAlertStudentOutcomeReport(
        response,
        "earlyAlertOutreachIds",
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        null,
        "csv");
    ;
    final List<String> expectedReportBodyLines = new ArrayList<String>(4);
    // TODO Understand why no filters does not bring back a result!
    expectedReportBodyLines.add("FIRST,MIDDLE,LAST,STUDENT ID,EMAIL(SCHOOL),OUTREACH,COUNSELOR");
    expectedReportBodyLines.add(
        "test,Mumford,coach1student1,coach1student1,[email protected],In Person,test coach1");
    expectedReportBodyLines.add(
        "test,Mumford,coach1student2,coach1student2,[email protected],Letter,test coach1");
    expectedReportBodyLines.add(
        "test,Mumford,coach1student3,coach1student3,[email protected],Letter,test coach1");

    expectReportBodyLines(expectedReportBodyLines, response, null);
  }