001: /**********************************************************************************
002: *
003: * $Id: TestGradeLoader.java 20345 2007-01-16 20:25:32Z ray@media.berkeley.edu $
004: *
005: ***********************************************************************************
006: *
007: * Copyright (c) 2005 The Regents of the University of California, The MIT Corporation
008: *
009: * Licensed under the Educational Community License, Version 1.0 (the "License");
010: * you may not use this file except in compliance with the License.
011: * You may obtain a copy of the License at
012: *
013: * http://www.opensource.org/licenses/ecl1.php
014: *
015: * Unless required by applicable law or agreed to in writing, software
016: * distributed under the License is distributed on an "AS IS" BASIS,
017: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018: * See the License for the specific language governing permissions and
019: * limitations under the License.
020: *
021: **********************************************************************************/package org.sakaiproject.tool.gradebook.test;
022:
023: import java.util.ArrayList;
024: import java.util.Iterator;
025: import java.util.List;
026:
027: import org.sakaiproject.section.api.coursemanagement.EnrollmentRecord;
028: import org.sakaiproject.section.api.facade.Role;
029: import org.sakaiproject.tool.gradebook.Assignment;
030: import org.sakaiproject.tool.gradebook.AssignmentGradeRecord;
031: import org.sakaiproject.tool.gradebook.Gradebook;
032:
033: /**
034: *
035: */
036: public class TestGradeLoader extends GradebookLoaderBase {
037:
038: public void testPopulate() throws Exception {
039: // Fetch the first gradebook.
040: Gradebook gb = gradebookManager
041: .getGradebook(TestGradebookLoader.GRADEBOOK_WITH_GRADES);
042:
043: List enrollments = sectionAwareness.getSiteMembersInRole(gb
044: .getUid(), Role.STUDENT);
045: List assignments = gradebookManager.getAssignments(gb.getId());
046:
047: for (Iterator asnIter = assignments.iterator(); asnIter
048: .hasNext();) {
049: boolean needToAddScrewyExternalScore = true;
050: Assignment asn = (Assignment) asnIter.next();
051:
052: // Don't add grades for at least one assignment.
053: if (asn.getName().equals(
054: TestGradebookLoader.ASN_NO_DUE_DATE_NAME)) {
055: continue;
056: }
057:
058: List gradeRecords = new ArrayList();
059: for (Iterator enrIter = enrollments.iterator(); enrIter
060: .hasNext();) {
061: EnrollmentRecord enr = (EnrollmentRecord) enrIter
062: .next();
063: // Don't add grades for those no good lazy students
064: if (!enr
065: .getUser()
066: .getUserUid()
067: .equals(
068: StandaloneSectionsDataLoader.AUTHID_WITHOUT_GRADES_1)
069: && !enr
070: .getUser()
071: .getUserUid()
072: .equals(
073: StandaloneSectionsDataLoader.AUTHID_WITHOUT_GRADES_2)) {
074: Double grade = new Double(Math.ceil(asn
075: .getPointsPossible().doubleValue()
076: * Math.random()));
077: if (asn.isExternallyMaintained()) {
078: if (needToAddScrewyExternalScore) {
079: grade = new Double(
080: grade.doubleValue() + 0.39981);
081: needToAddScrewyExternalScore = false;
082: }
083: gradebookExternalAssessmentService
084: .updateExternalAssessmentScore(gb
085: .getUid(), asn.getExternalId(),
086: enr.getUser().getUserUid(),
087: grade);
088: } else {
089: AssignmentGradeRecord agr = new AssignmentGradeRecord(
090: asn, enr.getUser().getUserUid(), grade);
091: gradeRecords.add(agr);
092: }
093: }
094: }
095:
096: // Save the internal assignment scores
097: if (!asn.isExternallyMaintained()) {
098: gradebookManager.updateAssignmentGradeRecords(asn,
099: gradeRecords);
100: }
101: }
102: // Ensure that this is actually saved to the database
103: setComplete();
104: }
105: }
|