/*
* Copyright 2012 Shared Learning Collaborative, LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.slc.sli.dashboard.unit.manager;
import static junit.framework.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.slc.sli.dashboard.client.APIClient;
import org.slc.sli.dashboard.entity.Config;
import org.slc.sli.dashboard.entity.GenericEntity;
import org.slc.sli.dashboard.manager.EntityManager;
import org.slc.sli.dashboard.manager.PopulationManager;
import org.slc.sli.dashboard.manager.impl.PopulationManagerImpl;
import org.slc.sli.dashboard.util.Constants;
import org.slc.sli.dashboard.util.StudentSummaryBuilder;
/**
*
* Tests for the population manager.
*
*/
@RunWith(PowerMockRunner.class)
@PrepareForTest(EntityManager.class)
public class PopulationManagerTest {
private static final String SECTION_ID = "fc4de89d-534e-4ae7-ae3c-b4a536e1a4ac";
private PopulationManagerImpl manager;
private EntityManager mockEntity;
private APIClient mockAPI;
@Before
public void setUp() throws Exception {
manager = new PopulationManagerImpl();
mockEntity = mock(EntityManager.class);
manager.setEntityManager(mockEntity);
mockAPI = mock(APIClient.class);
manager.setApiClient(mockAPI);
}
@After
public void tearDown() throws Exception {
manager = null;
mockEntity = null;
mockAPI = null;
}
/*
* Test that student summaries are being populated from programs, assessments, and students
*/
@Test
public void testGetStudentSummaries() throws Exception {
String studentId = "0";
String sectionId = "sectionId";
String token = "token";
String assessmentName = "Read2";
List<String> studentIds = new ArrayList<String>();
studentIds.add(studentId);
List<String> programs = new ArrayList<String>();
programs.add("ELL");
EntityManager mockedEntityManager = PowerMockito.spy(new EntityManager());
// Setup studentPrograms
GenericEntity studentProgram = new GenericEntity();
studentProgram.put("studentId", studentId);
studentProgram.put("programs", programs);
List<GenericEntity> studentPrograms = new ArrayList<GenericEntity>();
studentPrograms.add(studentProgram);
// Setup studentSummaries
GenericEntity studentSummary = new GenericEntity();
studentSummary.put("id", studentId);
List<GenericEntity> students = new ArrayList<GenericEntity>();
students.add(studentSummary);
PowerMockito.doReturn(students).when(mockedEntityManager, "getStudents", token, sectionId);
// setup attendance
PowerMockito.doReturn(new ArrayList<GenericEntity>()).when(mockedEntityManager, "getAttendance", token,
studentId, null, null);
// setup session
// GenericEntity baseSession = generateSession("2010-2011", "2010-12-31", "2011-01-31");
PowerMockito.doReturn(new GenericEntity()).when(mockedEntityManager, "getSession", token, null);
PowerMockito.doReturn(new ArrayList<GenericEntity>()).when(mockedEntityManager, "getSessionsByYear", token,
null);
// run it
PopulationManager popMan = new PopulationManagerImpl();
popMan.setEntityManager(mockedEntityManager);
List<GenericEntity> studentSummaries = popMan.getStudentSummaries(token, studentIds, null, sectionId);
assertTrue(studentSummaries.size() == 1);
GenericEntity result = studentSummaries.get(0);
assertTrue(result.get("id").equals(studentId));
}
private List<String> getStudentIds() {
List<String> studentIds = new ArrayList<String>();
studentIds.add("0");
studentIds.add("1");
return studentIds;
}
@Test
public void testGetSessionDates() throws Exception {
String sessionId = "1";
GenericEntity baseSession = generateSession("2010-2011", "2010-12-31", "2011-01-31");
when(mockEntity.getSession(null, sessionId)).thenReturn(baseSession);
when(mockEntity.getSessionsByYear(null, "2010-2011")).thenReturn(Arrays.asList(baseSession));
// See that we have the same beginning and end date
List<String> dates = manager.getSessionDates(null, sessionId);
assertTrue(dates.size() == 2);
assertTrue(dates.get(0).compareTo("2010-12-31") == 0);
assertTrue(dates.get(1).compareTo("2011-01-31") == 0);
// See that we compare dates correctly
GenericEntity lateSession = generateSession("2010-2011", "2011-02-1", "2011-03-14");
when(mockEntity.getSessionsByYear(null, "2010-2011")).thenReturn(Arrays.asList(baseSession, lateSession));
dates = manager.getSessionDates(null, sessionId);
assertTrue(dates.size() == 2);
assertTrue(dates.get(0).compareTo("2010-12-31") == 0);
assertTrue(dates.get(1).compareTo("2011-03-14") == 0);
// Try starting with the middle of a 3 semester setup.
GenericEntity earlySession = generateSession("2010-2011", "2010-01-01", "2010-12-30");
when(mockEntity.getSessionsByYear(null, "2010-2011")).thenReturn(
Arrays.asList(baseSession, lateSession, earlySession));
dates = manager.getSessionDates(null, sessionId);
assertTrue(dates.size() == 2);
assertTrue(dates.get(0).compareTo("2010-01-01") == 0);
assertTrue(dates.get(1).compareTo("2011-03-14") == 0);
}
private GenericEntity generateSession(String schoolYear, String beginDate, String endDate) {
GenericEntity startingSession = new GenericEntity();
startingSession.put("schoolYear", schoolYear);
startingSession.put("beginDate", beginDate);
startingSession.put("endDate", endDate);
return startingSession;
}
@Test
public void testGetAttendanceForOneStudent() throws Exception {
// start with a token, a student id, and a data config
String studentId = "0";
Config.Data config = new Config.Data();
Gson gson = new Gson();
List<Map> maps = null;
// matt soller
String enrollmentsJson = "[{id\":\"2012ap-d08c7b25-c484-11e1-a9ce-68a86d3c2f82\",\"educationalPlans\":[],\"studentId\":\"2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\",\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012ap-d08c7b25-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012ap-d08c7b25-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getStudent\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/students/2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012ap-d08c7b25-c484-11e1-a9ce-68a86d3c2f82/students\"},{\"rel\":\"getSchools\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012ap-d08c7b25-c484-11e1-a9ce-68a86d3c2f82/schools\"}],\"schoolId\":\"2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\",\"entityType\":\"studentSchoolAssociation\",\"entryDate\":\"2011-09-01\",\"entryGradeLevel\":\"Eighth grade\",\"entryGradeLevelCode\":\"8\",\"school\":{\"educationOrgIdentificationCode\":[{\"identificationSystem\":\"School\",\"ID\":\"East Daybreak Junior High\"}],\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getParentEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012jg-d065df9a-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getCourses\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/courses?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudentSchoolAssociations\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/studentSchoolAssociations\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/studentSchoolAssociations/students\"},{\"rel\":\"getSections\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/sections?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getAttendances\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/attendances?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getCohorts\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/cohorts?educationOrgId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getDisciplineActionsAsResponsibleSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineActions?responsibilitySchoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getDisciplineActionsAsAssignedSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineActions?assignmentSchoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSessions\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/sessions?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getTeacherSchoolAssociations\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/teacherSchoolAssociations\"},{\"rel\":\"getTeachers\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/teacherSchoolAssociations/teachers\"},{\"rel\":\"getDisciplineIncidents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineIncidents?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"}],\"stateOrganizationId\":\"East Daybreak Junior High\",\"entityType\":\"school\",\"nameOfInstitution\":\"East Daybreak Junior High\",\"schoolCategories\":[\"Junior High School\"],\"id\":\"2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\",\"accountabilityRatings\":[],\"gradesOffered\":[\"Sixth grade\",\"Seventh grade\",\"Eighth grade\"],\"organizationCategories\":[\"School\"],\"address\":[{\"nameOfCounty\":\"Wake\",\"streetNumberName\":\"111 Ave B\",\"postalCode\":\"10112\",\"stateAbbreviation\":\"IL\",\"addressType\":\"Physical\",\"city\":\"Chicago\"}],\"parentEducationAgencyReference\":\"2012jg-d065df9a-c484-11e1-a9ce-68a86d3c2f82\",\"programReference\":[],\"telephone\":[{\"institutionTelephoneNumberType\":\"Main\",\"telephoneNumber\":\"(917)-555-3312\"}]}},{\"id\":\"2012oz-d08cc947-c484-11e1-a9ce-68a86d3c2f82\",\"educationalPlans\":[],\"entryType\":\"Next year school\",\"studentId\":\"2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawType\":\"End of school year\",\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012oz-d08cc947-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012oz-d08cc947-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getStudent\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/students/2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012oz-d08cc947-c484-11e1-a9ce-68a86d3c2f82/students\"},{\"rel\":\"getSchools\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012oz-d08cc947-c484-11e1-a9ce-68a86d3c2f82/schools\"}],\"schoolId\":\"2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawDate\":\"2011-05-11\",\"entityType\":\"studentSchoolAssociation\",\"entryDate\":\"2010-09-01\",\"entryGradeLevel\":\"Seventh grade\",\"entryGradeLevelCode\":\"7\",\"school\":{\"educationOrgIdentificationCode\":[{\"identificationSystem\":\"School\",\"ID\":\"East Daybreak Junior High\"}],\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getParentEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012jg-d065df9a-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getCourses\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/courses?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudentSchoolAssociations\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/studentSchoolAssociations\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/studentSchoolAssociations/students\"},{\"rel\":\"getSections\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/sections?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getAttendances\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/attendances?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getCohorts\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/cohorts?educationOrgId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getDisciplineActionsAsResponsibleSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineActions?responsibilitySchoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getDisciplineActionsAsAssignedSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineActions?assignmentSchoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSessions\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/sessions?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getTeacherSchoolAssociations\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/teacherSchoolAssociations\"},{\"rel\":\"getTeachers\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/teacherSchoolAssociations/teachers\"},{\"rel\":\"getDisciplineIncidents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineIncidents?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"}],\"stateOrganizationId\":\"East Daybreak Junior High\",\"entityType\":\"school\",\"nameOfInstitution\":\"East Daybreak Junior High\",\"schoolCategories\":[\"Junior High School\"],\"id\":\"2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\",\"accountabilityRatings\":[],\"gradesOffered\":[\"Sixth grade\",\"Seventh grade\",\"Eighth grade\"],\"organizationCategories\":[\"School\"],\"address\":[{\"nameOfCounty\":\"Wake\",\"streetNumberName\":\"111 Ave B\",\"postalCode\":\"10112\",\"stateAbbreviation\":\"IL\",\"addressType\":\"Physical\",\"city\":\"Chicago\"}],\"parentEducationAgencyReference\":\"2012jg-d065df9a-c484-11e1-a9ce-68a86d3c2f82\",\"programReference\":[],\"telephone\":[{\"institutionTelephoneNumberType\":\"Main\",\"telephoneNumber\":\"(917)-555-3312\"}]}},{\"id\":\"2012qx-d08cf058-c484-11e1-a9ce-68a86d3c2f82\",\"educationalPlans\":[],\"entryType\":\"Transfer from a public school in the same local education agency\",\"studentId\":\"2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawType\":\"End of school year\",\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qx-d08cf058-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qx-d08cf058-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getStudent\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/students/2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qx-d08cf058-c484-11e1-a9ce-68a86d3c2f82/students\"},{\"rel\":\"getSchools\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qx-d08cf058-c484-11e1-a9ce-68a86d3c2f82/schools\"}],\"schoolId\":\"2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawDate\":\"2010-05-11\",\"entityType\":\"studentSchoolAssociation\",\"entryDate\":\"2009-09-07\",\"entryGradeLevel\":\"Sixth grade\",\"entryGradeLevelCode\":\"6\",\"school\":{\"educationOrgIdentificationCode\":[{\"identificationSystem\":\"School\",\"ID\":\"East Daybreak Junior High\"}],\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getParentEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012jg-d065df9a-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getCourses\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/courses?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudentSchoolAssociations\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/studentSchoolAssociations\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/studentSchoolAssociations/students\"},{\"rel\":\"getSections\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/sections?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getAttendances\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/attendances?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getCohorts\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/cohorts?educationOrgId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getDisciplineActionsAsResponsibleSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineActions?responsibilitySchoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getDisciplineActionsAsAssignedSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineActions?assignmentSchoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSessions\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/sessions?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getTeacherSchoolAssociations\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/teacherSchoolAssociations\"},{\"rel\":\"getTeachers\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82/teacherSchoolAssociations/teachers\"},{\"rel\":\"getDisciplineIncidents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/disciplineIncidents?schoolId\u003d2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\"}],\"stateOrganizationId\":\"East Daybreak Junior High\",\"entityType\":\"school\",\"nameOfInstitution\":\"East Daybreak Junior High\",\"schoolCategories\":[\"Junior High School\"],\"id\":\"2012ks-d06877ac-c484-11e1-a9ce-68a86d3c2f82\",\"accountabilityRatings\":[],\"gradesOffered\":[\"Sixth grade\",\"Seventh grade\",\"Eighth grade\"],\"organizationCategories\":[\"School\"],\"address\":[{\"nameOfCounty\":\"Wake\",\"streetNumberName\":\"111 Ave B\",\"postalCode\":\"10112\",\"stateAbbreviation\":\"IL\",\"addressType\":\"Physical\",\"city\":\"Chicago\"}],\"parentEducationAgencyReference\":\"2012jg-d065df9a-c484-11e1-a9ce-68a86d3c2f82\",\"programReference\":[],\"telephone\":[{\"institutionTelephoneNumberType\":\"Main\",\"telephoneNumber\":\"(917)-555-3312\"}]}},{\"id\":\"2012qy-d08d176a-c484-11e1-a9ce-68a86d3c2f82\",\"educationalPlans\":[],\"entryType\":\"Next year school\",\"studentId\":\"2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawType\":\"End of school year\",\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qy-d08d176a-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qy-d08d176a-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getStudent\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/students/2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qy-d08d176a-c484-11e1-a9ce-68a86d3c2f82/students\"},{\"rel\":\"getSchools\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012qy-d08d176a-c484-11e1-a9ce-68a86d3c2f82/schools\"}],\"schoolId\":\"2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawDate\":\"2009-05-11\",\"entityType\":\"studentSchoolAssociation\",\"entryDate\":\"2008-09-05\",\"entryGradeLevel\":\"Fifth grade\",\"entryGradeLevelCode\":\"5\"},{\"id\":\"2012cd-d08d3e7b-c484-11e1-a9ce-68a86d3c2f82\",\"educationalPlans\":[],\"entryType\":\"Next year school\",\"studentId\":\"2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawType\":\"End of school year\",\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012cd-d08d3e7b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012cd-d08d3e7b-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getStudent\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/students/2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012cd-d08d3e7b-c484-11e1-a9ce-68a86d3c2f82/students\"},{\"rel\":\"getSchools\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012cd-d08d3e7b-c484-11e1-a9ce-68a86d3c2f82/schools\"}],\"schoolId\":\"2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawDate\":\"2008-05-10\",\"entityType\":\"studentSchoolAssociation\",\"entryDate\":\"2007-09-12\",\"entryGradeLevel\":\"Fourth grade\",\"entryGradeLevelCode\":\"4\"},{\"id\":\"2012zz-d08d8c9d-c484-11e1-a9ce-68a86d3c2f82\",\"educationalPlans\":[],\"entryType\":\"Transfer from a private, religiously-affiliated school in a different state\",\"studentId\":\"2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawType\":\"Student is in a different public school in the same local education agency\",\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012zz-d08d8c9d-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012zz-d08d8c9d-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getStudent\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/students/2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getStudents\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012zz-d08d8c9d-c484-11e1-a9ce-68a86d3c2f82/students\"},{\"rel\":\"getSchools\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/studentSchoolAssociations/2012zz-d08d8c9d-c484-11e1-a9ce-68a86d3c2f82/schools\"}],\"schoolId\":\"2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\",\"exitWithdrawDate\":\"2007-05-09\",\"entityType\":\"studentSchoolAssociation\",\"entryDate\":\"2006-09-11\",\"entryGradeLevel\":\"Third grade\",\"entryGradeLevelCode\":\"3\"}]";
String attendanceJson = "[{\"id\":\"2012mt-d1ddd9ef-c484-11e1-a9ce-68a86d3c2f82\",\"studentId\":\"2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\",\"links\":[{\"rel\":\"self\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/attendances/2012mt-d1ddd9ef-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"custom\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/attendances/2012mt-d1ddd9ef-c484-11e1-a9ce-68a86d3c2f82/custom\"},{\"rel\":\"getStudent\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/students/2012sh-cc10689b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getSchool\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/schools/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"},{\"rel\":\"getEducationOrganization\",\"href\":\"http://local.slidev.org:8080/api/rest/v1/educationOrganizations/2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\"}],\"schoolId\":\"2012fs-d068509b-c484-11e1-a9ce-68a86d3c2f82\",\"entityType\":\"attendance\",\"schoolYearAttendance\":[{\"schoolYear\":\"2010-2011\",\"attendanceEvent\":[]},{\"schoolYear\":\"2007-2008\",\"attendanceEvent\":[]},{\"schoolYear\":\"2008-2009\",\"attendanceEvent\":[]},{\"schoolYear\":\"2006-2007\",\"attendanceEvent\":[]},{\"schoolYear\":\"2011-2012\",\"attendanceEvent\":[{\"event\":\"In Attendance\",\"date\":\"2011-11-24\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-14\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-25\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-16\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-25\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-18\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-12\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-24\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-21\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-10\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-12\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-18\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-07\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-15\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-01\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-29\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-14\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-26\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-15\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-11\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-08\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-03\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-13\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-21\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-16\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-21\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-14\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-08\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-06\"},{\"reason\":\"Absent excused\",\"event\":\"Excused Absence\",\"date\":\"2011-10-27\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-19\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-05\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-09\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-07\"},{\"reason\":\"Absent excused\",\"event\":\"Excused Absence\",\"date\":\"2011-09-13\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-04\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-31\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-20\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-14\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-30\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-20\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-10\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-15\"},{\"reason\":\"Absent excused\",\"event\":\"Excused Absence\",\"date\":\"2011-09-09\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-13\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-22\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-02\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-29\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-17\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-28\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-26\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-28\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-16\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-07\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-11\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-01\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-27\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-06\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-05\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-22\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-30\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-12\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-09\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-07\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-17\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-02\"},{\"event\":\"In Attendance\",\"date\":\"2011-09-06\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-04\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-03\"},{\"reason\":\"Absent excused\",\"event\":\"Excused Absence\",\"date\":\"2011-09-23\"},{\"event\":\"In Attendance\",\"date\":\"2011-11-23\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-28\"},{\"event\":\"In Attendance\",\"date\":\"2011-10-19\"},{\"event\":\"In Attendance\",\"date\":\"2011-12-08\"}]},{\"schoolYear\":\"2001-2002\",\"attendanceEvent\":[]}]}]";
when(mockAPI.getEnrollmentForStudent(null, "0")).thenReturn(
gson.fromJson(enrollmentsJson, new ArrayList<Map>().getClass()));
when(mockEntity.getAttendance(null, "0", null, null)).thenReturn(
gson.fromJson(attendanceJson, new ArrayList<Map>().getClass()));
// set up mock attendance data
/*
* GenericEntity attend1 = new GenericEntity();
* attend1.put(Constants.ATTR_ATTENDANCE_DATE, "2011-09-01");
* attend1.put(Constants.ATTR_ATTENDANCE_EVENT_CATEGORY, "Tardy");
* GenericEntity attend2 = new GenericEntity();
* attend2.put(Constants.ATTR_ATTENDANCE_DATE, "2011-10-01");
* attend2.put(Constants.ATTR_ATTENDANCE_EVENT_CATEGORY, "Excused Absence");
*
* List<GenericEntity> attendList = new ArrayList<GenericEntity>();
* attendList.add(attend1);
* attendList.add(attend2);
*
* when(mockEntity.getAttendance(null, "0", null, null)).thenReturn(attendList);
*/
// make the call
GenericEntity a = manager.getAttendance(null, studentId, config);
Assert.assertNotNull(a);
List<LinkedHashMap<String, Object>> attendances = a.getList("attendance");
Assert.assertNotNull(attendances);
Assert.assertEquals(2, attendances.size());
Assert.assertEquals("2011-2012", attendances.get(0).get("term"));
Assert.assertEquals("East Daybreak Junior High", attendances.get(0).get("schoolName"));
Assert.assertEquals("8", attendances.get(0).get("gradeLevel"));
Assert.assertEquals("95", attendances.get(0).get("present"));
Assert.assertEquals(70, attendances.get(0).get("inAttendanceCount"));
Assert.assertEquals(4, attendances.get(0).get("totalAbsencesCount"));
Assert.assertEquals(0, attendances.get(0).get("absenceCount"));
Assert.assertEquals(4, attendances.get(0).get("excusedAbsenceCount"));
Assert.assertEquals(0, attendances.get(0).get("unexcusedAbsenceCount"));
Assert.assertEquals(0, attendances.get(0).get("tardyCount"));
Assert.assertEquals("2010-2011", attendances.get(1).get("term"));
Assert.assertEquals("East Daybreak Junior High", attendances.get(1).get("schoolName"));
Assert.assertEquals(0, attendances.get(1).get("tardyCount"));
Assert.assertEquals(0, attendances.get(1).get("earlyDepartureCount"));
// Assert.assertEquals(1, ((Integer) (((Map)
// (a.getList("attendance").get(0))).get("totalCount"))).intValue());
}
@Test
public void testApplyAssessmentFilters() throws Exception {
// set up studentSummaries
List<GenericEntity> studentSummaries = createSomeStudentSummaries();
// set up config
Map<String, Object> params = new HashMap<String, Object>();
Map<String, String> assmtFilter = new HashMap<String, String>();
assmtFilter.put("StateTest Reading", "MOST_RECENT_RESULT");
params.put(Constants.CONFIG_ASSESSMENT_FILTER, assmtFilter);
Config.Data config = new Config.Data("entity", "cacheKey", false, params);
// make the call
PopulationManagerImpl pm = new PopulationManagerImpl();
pm.applyAssessmentFilters(studentSummaries, config);
// check that two of the three assmts got filtered out
GenericEntity student = studentSummaries.get(0);
Map filteredAssmts = (Map) student.get("assessments");
Map filteredAssmt = (Map) filteredAssmts.get("StateTest Reading");
Assert.assertEquals(1, filteredAssmts.size());
Assert.assertEquals("2011-05-01", filteredAssmt.get("administrationDate"));
}
@Test
public void testEnhanceListOfStudents() {
// set up studentSummaries
List<GenericEntity> studentSummaries = createSomeStudentSummaries();
// set up config
Map<String, Object> params = new HashMap<String, Object>();
Map<String, String> assmtFilter = new HashMap<String, String>();
assmtFilter.put("StateTest Reading", "MOST_RECENT_RESULT");
params.put(Constants.CONFIG_ASSESSMENT_FILTER, assmtFilter);
Config.Data config = new Config.Data("entity", "cacheKey", false, params);
// make the call
PopulationManagerImpl pm = new PopulationManagerImpl();
pm.applyAssessmentFilters(studentSummaries, config);
// TODO - Pass "real" data, update createSomeStudentSummaries to use the same section ID
// that you pass here.
pm.enhanceListOfStudents(studentSummaries, SECTION_ID);
// check for full name
GenericEntity student = studentSummaries.get(0);
Map name = (Map) student.get("name");
Assert.assertEquals("John Doe", name.get("fullName"));
// check for modified score attributes
Map enhancedAssmts = (Map) student.get("assessments");
Map enhancedAssmt = (Map) enhancedAssmts.get("StateTest Reading");
Assert.assertEquals("50", enhancedAssmt.get("Scale score"));
// check for attendance tallies
Map attendances = (Map) student.get(Constants.ATTR_STUDENT_ATTENDANCES);
Assert.assertEquals(1, attendances.get(Constants.ATTR_ABSENCE_COUNT));
Assert.assertEquals(1, attendances.get(Constants.ATTR_TARDY_COUNT));
}
@Test
public void testStudentComparator() {
PopulationManagerImpl populationManager = new PopulationManagerImpl();
List<GenericEntity> studentSummaries = new ArrayList<GenericEntity>();
GenericEntity student = new GenericEntity();
Map<String, Object> name = new HashMap<String, Object>();
name.put("firstName", "J");
name.put("lastSurname", "K");
student.put("name", name);
student.put("id", "dummyId");
populationManager.addFullName(student);
studentSummaries.add(student);
name = new HashMap<String, Object>();
student = new GenericEntity();
name.put("firstName", "Z");
name.put("lastSurname", "B");
student.put("name", name);
student.put("id", "dummyId3");
populationManager.addFullName(student);
studentSummaries.add(student);
name = new HashMap<String, Object>();
student = new GenericEntity();
name.put("firstName", "A");
name.put("lastSurname", "B");
student.put("name", name);
student.put("id", "dummyId1");
populationManager.addFullName(student);
studentSummaries.add(student);
name = new HashMap<String, Object>();
student = new GenericEntity();
name.put("firstName", "A");
name.put("lastSurname", "A");
student.put("name", name);
student.put("id", "dummyId5");
populationManager.addFullName(student);
studentSummaries.add(student);
Assert.assertEquals("J K", studentSummaries.get(0)
.getNode(Constants.ATTR_NAME + "." + Constants.ATTR_FULL_NAME));
Collections.sort(studentSummaries, PopulationManagerImpl.STUDENT_COMPARATOR);
Assert.assertEquals("A A", studentSummaries.get(0)
.getNode(Constants.ATTR_NAME + "." + Constants.ATTR_FULL_NAME));
Assert.assertEquals("A B", studentSummaries.get(1)
.getNode(Constants.ATTR_NAME + "." + Constants.ATTR_FULL_NAME));
Assert.assertEquals("J K", studentSummaries.get(2)
.getNode(Constants.ATTR_NAME + "." + Constants.ATTR_FULL_NAME));
Assert.assertEquals("Z B", studentSummaries.get(3)
.getNode(Constants.ATTR_NAME + "." + Constants.ATTR_FULL_NAME));
}
private List<GenericEntity> createSomeStudentSummaries() {
List<GenericEntity> studentSummaries = new ArrayList<GenericEntity>();
GenericEntity student = new GenericEntity();
Map<String, Object> name = new HashMap<String, Object>();
name.put("firstName", "John");
name.put("lastSurname", "Doe");
student.put("name", name);
student.put("id", "dummyId");
studentSummaries.add(student);
// create assmt data
List<Map> assmtResults = new ArrayList<Map>();
Map assmtResult1 = new HashMap();
Map assmts1 = new HashMap();
assmts1.put("assessmentFamilyHierarchyName",
"StateTest.StateTest Reading for Grades 3-8.StateTest Reading for Grade 8");
assmtResult1.put("assessments", assmts1);
assmtResult1.put("administrationDate", "2011-05-01");
List<Map> scores = new ArrayList<Map>();
Map scaleScore = new HashMap();
scaleScore.put("assessmentReportingMethod", "Scale score");
scaleScore.put("result", "50");
scores.add(scaleScore);
assmtResult1.put("scoreResults", scores);
assmtResults.add(assmtResult1);
Map assmtResult2 = new HashMap();
Map assmts2 = new HashMap();
assmts2.put("assessmentFamilyHierarchyName",
"StateTest.StateTest Reading for Grades 3-8.StateTest Reading for Grade 8");
assmtResult2.put("assessments", assmts2);
assmtResult2.put("administrationDate", "2011-03-01");
assmtResults.add(assmtResult2);
Map assmtResult3 = new HashMap();
Map assmts3 = new HashMap();
assmts3.put("assessmentFamilyHierarchyName", "Dummy Assessment Family");
assmtResult3.put("assessments", assmts3);
assmtResult3.put("administrationDate", "2011-02-01");
assmtResults.add(assmtResult3);
student.put(Constants.ATTR_STUDENT_ASSESSMENTS, assmtResults);
// create attendance data
Map<String, Object> attendanceBody = new HashMap<String, Object>();
List<Map<String, Object>> attendances = new ArrayList<Map<String, Object>>();
attendanceBody.put(Constants.ATTR_STUDENT_ATTENDANCES, attendances);
student.put(Constants.ATTR_STUDENT_ATTENDANCES, attendanceBody);
Map<String, Object> attendance1 = new HashMap<String, Object>();
attendance1.put(Constants.ATTR_ATTENDANCE_EVENT_CATEGORY, "Unexcused Absence");
attendances.add(attendance1);
Map<String, Object> attendance2 = new HashMap<String, Object>();
attendance2.put(Constants.ATTR_ATTENDANCE_EVENT_CATEGORY, "Tardy");
attendances.add(attendance2);
StudentSummaryBuilder.addFullDetailTranscripts(student);
StudentSummaryBuilder.addRealGradeBookEntries(student);
return studentSummaries;
}
public void testStudentNameSearch() {
}
}