/**********************************************************************************
* $URL: https://source.sakaiproject.org/svn/sections/trunk/sections-app/src/test/org/sakaiproject/test/section/dataload/DataLoadTest.java $
* $Id: DataLoadTest.java 105080 2012-02-24 23:10:31Z ottenhoff@longsight.com $
***********************************************************************************
*
* Copyright (c) 2005, 2006, 2008 The Sakai Foundation
*
* Licensed under the Educational Community 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.opensource.org/licenses/ECL-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.sakaiproject.test.section.dataload;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sakaiproject.section.api.CourseManager;
import org.sakaiproject.section.api.SectionManager;
import org.sakaiproject.section.api.coursemanagement.Course;
import org.sakaiproject.section.api.coursemanagement.CourseSection;
import org.sakaiproject.section.api.coursemanagement.User;
import org.sakaiproject.section.api.exception.RoleConfigurationException;
import org.sakaiproject.section.api.facade.Role;
import org.sakaiproject.component.section.support.UserManager;
import org.sakaiproject.test.section.SectionsTestBase;
public class DataLoadTest extends SectionsTestBase {
private static Log log = LogFactory.getLog(DataLoadTest.class);
public DataLoadTest() {
// Don't roll these tests back, since they are intended to load data
setDefaultRollback(false);
}
protected CourseManager courseManager;
protected SectionManager sectionManager;
protected UserManager userManager;
protected void onSetUpInTransaction() throws Exception {
courseManager = (CourseManager)applicationContext.getBean("org.sakaiproject.section.api.CourseManager");
sectionManager = (SectionManager)applicationContext.getBean("org.sakaiproject.section.api.SectionManager");
userManager = (UserManager)applicationContext.getBean("org.sakaiproject.component.section.support.UserManager");
}
public void testLoadData() {
// Load courses
Course course1 = courseManager.createCourse("site1", "A Course for Site #1", false, false, true);
Course course2 = courseManager.createCourse("site2", "A Course for Site #2", false, false, false);
Course course3 = courseManager.createCourse("site3", "A Course for Site #3", false, false, false);
// Load sections
CourseSection lab1 = sectionManager.addSection(course1.getUuid(), "Lab 1", "section.category.lab", Integer.valueOf(20), "Dank basement lab", new Time(new Date().getTime()), new Time(new Date().getTime()), true, false, true, false, false, false, false);
CourseSection lab2 = sectionManager.addSection(course1.getUuid(), "Lab 2", "section.category.lab", Integer.valueOf(20), "Dank basement lab", new Time(new Date().getTime()), new Time(new Date().getTime()), false, true, false, true, false, false, false);
CourseSection disc1 = sectionManager.addSection(course1.getUuid(), "Disc 1", "section.category.discussion", Integer.valueOf(30), "Sunny classroom", new Time(new Date().getTime()), new Time(new Date().getTime()), true, false, true, false, true, false, false);
// Load students
User studenta = userManager.createUser("studenta", "Joe Student", "Student, Joe", "jstudent");
User studentb = userManager.createUser("studentb", "Jane Undergrad", "Undergrad, Jane", "jundergrad");
User studentc = userManager.createUser("studentc", "Max Guest", "Guest, Max", "mguest");
List studentList = new ArrayList();
for(int i = 0; i < 100; i++) {
studentList.add(userManager.createUser("student" + i, "Test Student " + i, "Student, Test " + i, "tstudent" + i));
}
// Load TAs
User ta1 = userManager.createUser("ta1", "Mike Grad", "Grad, Mike", "mgrad");
User ta2 = userManager.createUser("ta2", "Sara Hyphenated-Elongated-Postdoc", "Hyphenated-Elongated-Postdoc, Sara", "shyphenatedelongatedpostdoc");
// Load instructors
User instructor1 = userManager.createUser("instructor1", "Bill Economist", "Economist, Bill", "beconomist");
User instructor2 = userManager.createUser("instructor2", "Amber Philosopher", "Philosopher, Amber", "aphilosopher");
// Load other people
userManager.createUser("other1", "Other Person", "Person, Other", "operson");
// Load enrollments into the courses
courseManager.addEnrollment(studenta, course1);
courseManager.addEnrollment(studenta, course2);
courseManager.addEnrollment(studenta, course3);
courseManager.addEnrollment(studentb, course1);
courseManager.addEnrollment(studentb, course2);
courseManager.addEnrollment(studentb, course3);
courseManager.addEnrollment(studentc, course1);
courseManager.addEnrollment(studentc, course2);
courseManager.addEnrollment(studentc, course3);
for(Iterator iter = studentList.iterator(); iter.hasNext();) {
User user = (User)iter.next();
courseManager.addEnrollment(user, course1);
courseManager.addEnrollment(user, course2);
courseManager.addEnrollment(user, course3);
}
// Load enrollments into sections
try {
sectionManager.addSectionMembership("studenta", Role.STUDENT, lab1.getUuid());
sectionManager.addSectionMembership("studentb", Role.STUDENT, lab2.getUuid());
sectionManager.addSectionMembership("studentc", Role.STUDENT, disc1.getUuid());
} catch (RoleConfigurationException rce) {
log.error(rce);
fail();
}
// Load TAs into the course
courseManager.addTA(ta1, course1);
courseManager.addTA(ta1, course2);
courseManager.addTA(ta1, course3);
courseManager.addTA(ta2, course1);
courseManager.addTA(ta2, course2);
courseManager.addTA(ta2, course3);
// Load TAs into the sections
try {
sectionManager.addSectionMembership("ta1", Role.TA, lab1.getUuid());
sectionManager.addSectionMembership("ta1", Role.TA, disc1.getUuid());
sectionManager.addSectionMembership("ta2", Role.TA, lab2.getUuid());
sectionManager.addSectionMembership("ta2", Role.TA, disc1.getUuid());
} catch (RoleConfigurationException rce) {
log.error(rce);
fail();
}
// Load instructors into the courses
courseManager.addInstructor(instructor1, course1);
courseManager.addInstructor(instructor2, course2);
courseManager.addInstructor(instructor2, course3);
}
}