mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 16:32:18 +02:00
MDL-48362 enrol_cohort: Fix unit test by manually triggering sync
Sync is now automatically triggered by add/update instance. We need to manually trigger sync before each part of the test to clean up role assignments from the previous test.
This commit is contained in:
parent
e3f24ac030
commit
74aece8719
@ -50,6 +50,7 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
global $DB;
|
||||
|
||||
$this->resetAfterTest();
|
||||
$trace = new null_progress_trace();
|
||||
|
||||
// Setup a few courses and categories.
|
||||
|
||||
@ -191,6 +192,9 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
$this->assertFalse($DB->record_exists('enrol', array('id'=>$cohortinstance1->id)));
|
||||
$this->assertFalse($DB->record_exists('role_assignments', array('component'=>'enrol_cohort', 'itemid'=>$cohortinstance1->id)));
|
||||
|
||||
// Cleanup after previous test (remove the extra user_enrolment).
|
||||
enrol_cohort_sync($trace, $course1->id);
|
||||
$this->assertEquals(3, $DB->count_records('user_enrolments', array()));
|
||||
|
||||
// Test group sync.
|
||||
|
||||
@ -203,7 +207,7 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
$id = $cohortplugin->add_instance($course1, array('customint1'=>$cohort1->id, 'roleid'=>$studentrole->id, 'customint2'=>$group1->id));
|
||||
$cohortinstance1 = $DB->get_record('enrol', array('id'=>$id));
|
||||
|
||||
$this->assertEquals(4, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(3, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(2, $DB->count_records('role_assignments', array()));
|
||||
|
||||
$this->assertTrue(is_enrolled(context_course::instance($course1->id), $user4));
|
||||
@ -241,7 +245,7 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
cohort_add_member($cohort1->id, $user2->id);
|
||||
cohort_add_member($cohort1->id, $user3->id);
|
||||
|
||||
$this->assertEquals(7, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(6, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(5, $DB->count_records('role_assignments', array()));
|
||||
$this->assertEquals(3, $DB->count_records('role_assignments', array('component'=>'enrol_cohort', 'itemid'=>$cohortinstance1->id)));
|
||||
$this->assertEquals(5, $DB->count_records('groups_members', array()));
|
||||
@ -249,7 +253,7 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
|
||||
$cohortplugin->delete_instance($cohortinstance1);
|
||||
|
||||
$this->assertEquals(4, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(3, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(2, $DB->count_records('role_assignments', array()));
|
||||
$this->assertEquals(0, $DB->count_records('role_assignments', array('component'=>'enrol_cohort', 'itemid'=>$cohortinstance1->id)));
|
||||
$this->assertEquals(2, $DB->count_records('groups_members', array()));
|
||||
@ -377,7 +381,11 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
|
||||
// Test group sync.
|
||||
|
||||
$this->disable_plugin(); // No event sync
|
||||
$this->disable_plugin(); // No event sync.
|
||||
|
||||
// Trigger sync to remove left over role assignments.
|
||||
enrol_cohort_sync($trace, $course1->id);
|
||||
$this->assertEquals(2, $DB->count_records('role_assignments', array()));
|
||||
|
||||
$id = groups_create_group((object)array('name'=>'Group 1', 'courseid'=>$course1->id));
|
||||
$group1 = $DB->get_record('groups', array('id'=>$id), '*', MUST_EXIST);
|
||||
@ -392,10 +400,10 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
$this->assertTrue(groups_add_member($group1, $user4));
|
||||
$this->assertTrue(groups_add_member($group2, $user4));
|
||||
|
||||
$this->enable_plugin(); // No event sync
|
||||
$this->enable_plugin(); // No event sync.
|
||||
|
||||
$this->assertEquals(3, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(3, $DB->count_records('role_assignments', array()));
|
||||
$this->assertEquals(2, $DB->count_records('role_assignments', array()));
|
||||
|
||||
$this->assertFalse(groups_is_member($group1->id, $user1->id));
|
||||
cohort_add_member($cohort1->id, $user1->id);
|
||||
@ -405,7 +413,8 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
enrol_cohort_sync($trace, $course1->id);
|
||||
|
||||
$this->assertEquals(7, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(7, $DB->count_records('role_assignments', array()));
|
||||
// This used to be 7 - but now add_instance triggers an immediate sync.
|
||||
$this->assertEquals(6, $DB->count_records('role_assignments', array()));
|
||||
|
||||
$this->assertTrue(groups_is_member($group1->id, $user1->id));
|
||||
$this->assertTrue($DB->record_exists('groups_members', array('groupid'=>$group1->id, 'userid'=>$user1->id, 'component'=>'enrol_cohort', 'itemid'=>$cohortinstance1->id)));
|
||||
@ -551,6 +560,9 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
// Test group sync.
|
||||
|
||||
$this->disable_plugin(); // No event sync
|
||||
// Trigger sync to remove extra role assignments.
|
||||
enrol_cohort_sync($trace, $course1->id);
|
||||
$this->assertEquals(2, $DB->count_records('role_assignments', array()));
|
||||
|
||||
$id = groups_create_group((object)array('name'=>'Group 1', 'courseid'=>$course1->id));
|
||||
$group1 = $DB->get_record('groups', array('id'=>$id), '*', MUST_EXIST);
|
||||
@ -567,7 +579,7 @@ class enrol_cohort_testcase extends advanced_testcase {
|
||||
$this->assertTrue(groups_add_member($group2, $user4));
|
||||
|
||||
$this->assertEquals(3, $DB->count_records('user_enrolments', array()));
|
||||
$this->assertEquals(3, $DB->count_records('role_assignments', array()));
|
||||
$this->assertEquals(2, $DB->count_records('role_assignments', array()));
|
||||
|
||||
$this->assertFalse(groups_is_member($group1->id, $user1->id));
|
||||
cohort_add_member($cohort1->id, $user1->id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user