/** * Create a new course, fetch new enrolments, assert that the new enrolments * match the unenroled test users. Tests db_fetch_new_enrolments(). */ public function test_fetch_new_enrolments() { // Fetch new enrolments for the dummy course. $initialenrolments = dc_fetch_new_enrolments($this->dummycourse->id); // Expected: no new enrolments. $this->assertEquals(0, count($initialenrolments)); // Create three dummy users. $this->user = $this->getDataGenerator()->create_user(array('email' => '*****@*****.**', 'username' => 'dctestuser')); $this->user2 = $this->getDataGenerator()->create_user(array('email' => '*****@*****.**', 'username' => 'dctestuser2')); $this->user3 = $this->getDataGenerator()->create_user(array('email' => '*****@*****.**', 'username' => 'dctestuser3')); // Fetch new enrolments for the dummy course. $subsequentenrolments = dc_fetch_new_enrolments($this->dummycourse->id); // Expected: 3 new enrolments. $this->assertEquals(3, count($subsequentenrolments)); }
/** * Purpose: Enrol all users who are not currently enroled as students * in the courses defined as default courses * * @author Andrew Zoltay * date 2012-06-20 * @global object $DB Moodle database object * @return none */ function dc_enrol_default_courses() { global $DB; // Initialize enrolment results object. $results = new stdClass(); // Get the Student Role ID. $studentroleid = $DB->get_field('role', 'id', array('archetype' => 'student'), MUST_EXIST); // Get courseids for default courses. $defaultcourses = explode(',', get_config('local_defaultcourses', 'courseids')); // Make sure there are some default courses to enrol users. if ($defaultcourses) { // Enroling all users in default courses... foreach ($defaultcourses as $defaultcourse) { $course = $DB->get_record('course', array('id' => (int) $defaultcourse), '*', MUST_EXIST); mtrace("Enrol users in default course: {$course->fullname}"); // Get the enrolment id for the course. $enrolid = $DB->get_field_select('enrol', 'id', 'courseid = ? AND roleid = ? AND enrol =?', array($course->id, $studentroleid, 'manual')); // Check to make sure enrolment method exists before trying to enrol users. if ($enrolid) { $defaultenrolments = dc_fetch_new_enrolments($course->id); if (!$defaultenrolments) { mtrace("No users found to be enroled in default course: {$course->fullname}"); } else { $results = dc_enrol_users($defaultenrolments, $course, $enrolid, $studentroleid); } } else { // Write error to CRON log. mtrace("Manual enrolment method is missing for default course: {$course->fullname}"); } } $tmp = (array) $results; // Cast as array so empty() is meaningful... if (!empty($tmp)) { mtrace("{$results->successcount} students were successfully enroled in default courses"); mtrace("{$results->failurecount} students failed to be enroled in default courses"); } } else { // No default courses defined. mtrace("No default courses have been defined - define defalut courses through " . "Site Administration block -> Plugins -> Local Plugins -> Default Courses"); } }