mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 04:22:07 +02:00
MDL-17929 enrol_meta: unittest for unenrolment from group
This commit is contained in:
parent
9c1561ef83
commit
f99fe11045
@ -532,6 +532,68 @@ class enrol_meta_plugin_testcase extends advanced_testcase {
|
||||
$this->assertFalse(is_enrolled(context_course::instance($course3->id), $user4, '', true));
|
||||
}
|
||||
|
||||
/**
|
||||
* Enrol users from another course into a course where one of the members is already enrolled
|
||||
* and is a member of the same group.
|
||||
*/
|
||||
public function test_add_to_group_with_member() {
|
||||
global $CFG, $DB;
|
||||
|
||||
require_once($CFG->dirroot.'/group/lib.php');
|
||||
|
||||
$this->resetAfterTest(true);
|
||||
|
||||
$metalplugin = enrol_get_plugin('meta');
|
||||
|
||||
$user1 = $this->getDataGenerator()->create_user();
|
||||
$user2 = $this->getDataGenerator()->create_user();
|
||||
|
||||
$course1 = $this->getDataGenerator()->create_course();
|
||||
$course2 = $this->getDataGenerator()->create_course();
|
||||
$manualenrol1 = $DB->get_record('enrol', array('courseid' => $course1->id, 'enrol' => 'manual'), '*', MUST_EXIST);
|
||||
$manualenrol2 = $DB->get_record('enrol', array('courseid' => $course2->id, 'enrol' => 'manual'), '*', MUST_EXIST);
|
||||
|
||||
$student = $DB->get_record('role', array('shortname' => 'student'));
|
||||
|
||||
$groupid = groups_create_group((object)array('name' => 'Grp', 'courseid' => $course2->id));
|
||||
|
||||
$this->enable_plugin();
|
||||
set_config('unenrolaction', ENROL_EXT_REMOVED_UNENROL, 'enrol_meta');
|
||||
|
||||
// Manually enrol user1 to course2 and add him to group.
|
||||
// Manually enrol user2 to course2 but do not add him to the group.
|
||||
enrol_get_plugin('manual')->enrol_user($manualenrol2, $user1->id, $student->id);
|
||||
groups_add_member($groupid, $user1->id);
|
||||
enrol_get_plugin('manual')->enrol_user($manualenrol2, $user2->id, $student->id);
|
||||
$this->assertTrue(groups_is_member($groupid, $user1->id));
|
||||
$this->assertFalse(groups_is_member($groupid, $user2->id));
|
||||
|
||||
// Add instance of meta enrolment in course2 linking to course1 and enrol both users in course1.
|
||||
$metalplugin->add_instance($course2, array('customint1' => $course1->id, 'customint2' => $groupid));
|
||||
|
||||
enrol_get_plugin('manual')->enrol_user($manualenrol1, $user1->id, $student->id);
|
||||
enrol_get_plugin('manual')->enrol_user($manualenrol1, $user2->id, $student->id);
|
||||
|
||||
// Both users now should be members of the group.
|
||||
$this->assertTrue(groups_is_member($groupid, $user1->id));
|
||||
$this->assertTrue(groups_is_member($groupid, $user2->id));
|
||||
|
||||
// Ununerol both users from course1.
|
||||
enrol_get_plugin('manual')->unenrol_user($manualenrol1, $user1->id);
|
||||
enrol_get_plugin('manual')->unenrol_user($manualenrol1, $user2->id);
|
||||
|
||||
// User1 should still be member of the group because he was added there manually. User2 should no longer be there.
|
||||
$this->assertTrue(groups_is_member($groupid, $user1->id));
|
||||
$this->assertFalse(groups_is_member($groupid, $user2->id));
|
||||
|
||||
// Assert that everything is the same after sync.
|
||||
enrol_meta_sync();
|
||||
|
||||
$this->assertTrue(groups_is_member($groupid, $user1->id));
|
||||
$this->assertFalse(groups_is_member($groupid, $user2->id));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test user_enrolment_created event.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user