/** * 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); }
/** * 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; }