예제 #1
0
 /**
  * Enrol user in a new empty course, assert that the user
  * has been enrolled.  Tests dc_enrol_user().
  *
  * global object $DB The Moodle database object.
  */
 public function test_enrol_user()
 {
     global $DB;
     // Create a dummy user.
     $this->user = $this->getDataGenerator()->create_user(array('email' => '*****@*****.**', 'username' => 'dctestuser'));
     // Create a dummy page, required to get a dummy course enrolment manager.
     $dummypage = new moodle_page();
     // Get a dummy course enrolment manager.
     $manager = new course_enrolment_manager($dummypage, $this->dummycourse);
     // Get a student role id for the dummy student.
     $studentroleid = $DB->get_field('role', 'id', array('archetype' => 'student'), MUST_EXIST);
     // Get the enrolment id.
     $enrolid = $DB->get_field_select('enrol', 'id', 'courseid = ? AND roleid = ? AND enrol =?', array($this->dummycourse->id, $studentroleid, 'manual'));
     // Attempt to enrol the student using dc_enrol_user().
     dc_enrol_user($manager, $this->dummycoursecontext, $this->user->id, $enrolid, $studentroleid);
     // How many students enrolled in the course?
     $enrolcount = count_enrolled_users($this->dummycoursecontext);
     // Expected: one.
     $this->assertEquals(1, $enrolcount);
 }
예제 #2
0
/**
 * Helper function for dc_enrol_default_courses - enrols a list of users in a course.
 *
 * @param array $users -
 * @param object $course - The course into which the users are enrolled
 * @param int $enrolid - enrolment type id
 * @param int $studentroleid - id of the role in which the user is being enrolled (student)
 * @return stdClass
 */
function dc_enrol_users($users, $course, $enrolid, $studentroleid)
{
    // Set up result object.
    $results = new stdClass();
    $results->successcount = 0;
    $results->failurecount = 0;
    // Set up parameters for dc_enrol_user.
    $context = context_course::instance($course->id, MUST_EXIST);
    $dummypage = new moodle_page();
    // Need to create dummy moodle_page for course_enrolment_manager - annoying!
    $manager = new course_enrolment_manager($dummypage, $course);
    // Enrol each student in the default course.
    foreach ($users as $user) {
        if (dc_enrol_user($manager, $context, $user->userid, $enrolid, $studentroleid)) {
            $results->successcount++;
        } else {
            mtrace("ERROR - failed to enrol student: '{$user->username}");
            $results->failurecount++;
        }
    }
    return $results;
}