MDL-59382 calendar: add modal to create and update events

This commit is contained in:
Ryan Wyllie 2017-07-24 08:01:14 +00:00
parent 6103fd2efe
commit aa0912258d
23 changed files with 2392 additions and 157 deletions

View file

@ -1547,4 +1547,148 @@ class core_grouplib_testcase extends advanced_testcase {
$this->assertCount(2, $members); // Now I see members of group 3.
$this->assertEquals([$user1->id, $user3->id], array_keys($members), '', 0.0, 10, true);
}
public function test_groups_get_all_groups_for_courses_no_courses() {
$this->resetAfterTest(true);
$generator = $this->getDataGenerator();
$this->assertEquals([], groups_get_all_groups_for_courses([]));
}
public function test_groups_get_all_groups_for_courses_with_courses() {
$this->resetAfterTest(true);
$generator = $this->getDataGenerator();
// Create courses.
$course1 = $generator->create_course(); // no groups.
$course2 = $generator->create_course(); // one group, no members.
$course3 = $generator->create_course(); // one group, one member.
$course4 = $generator->create_course(); // one group, multiple members.
$course5 = $generator->create_course(); // two groups, no members.
$course6 = $generator->create_course(); // two groups, one member.
$course7 = $generator->create_course(); // two groups, multiple members.
$courses = [$course1, $course2, $course3, $course4, $course5, $course6, $course7];
// Create users.
$user1 = $generator->create_user();
$user2 = $generator->create_user();
$user3 = $generator->create_user();
$user4 = $generator->create_user();
// Enrol users.
foreach ($courses as $course) {
$generator->enrol_user($user1->id, $course->id);
$generator->enrol_user($user2->id, $course->id);
$generator->enrol_user($user3->id, $course->id);
$generator->enrol_user($user4->id, $course->id);
}
// Create groups.
$group1 = $generator->create_group(array('courseid' => $course2->id)); // no members.
$group2 = $generator->create_group(array('courseid' => $course3->id)); // one member.
$group3 = $generator->create_group(array('courseid' => $course4->id)); // multiple members.
$group4 = $generator->create_group(array('courseid' => $course5->id)); // no members.
$group5 = $generator->create_group(array('courseid' => $course5->id)); // no members.
$group6 = $generator->create_group(array('courseid' => $course6->id)); // one member.
$group7 = $generator->create_group(array('courseid' => $course6->id)); // one member.
$group8 = $generator->create_group(array('courseid' => $course7->id)); // multiple members.
$group9 = $generator->create_group(array('courseid' => $course7->id)); // multiple members.
// Assign users to groups.
$generator->create_group_member(array('groupid' => $group2->id, 'userid' => $user1->id));
$generator->create_group_member(array('groupid' => $group3->id, 'userid' => $user1->id));
$generator->create_group_member(array('groupid' => $group3->id, 'userid' => $user2->id));
$generator->create_group_member(array('groupid' => $group6->id, 'userid' => $user1->id));
$generator->create_group_member(array('groupid' => $group7->id, 'userid' => $user1->id));
$generator->create_group_member(array('groupid' => $group8->id, 'userid' => $user1->id));
$generator->create_group_member(array('groupid' => $group8->id, 'userid' => $user2->id));
$generator->create_group_member(array('groupid' => $group9->id, 'userid' => $user1->id));
$generator->create_group_member(array('groupid' => $group9->id, 'userid' => $user2->id));
$result = groups_get_all_groups_for_courses($courses);
$assertPropertiesMatch = function($expected, $actual) {
$props = get_object_vars($expected);
foreach ($props as $name => $val) {
$got = $actual->{$name};
$this->assertEquals(
$val,
$actual->{$name},
"Failed asserting that {$got} equals {$val} for property {$name}"
);
}
};
// Course 1 has no groups.
$this->assertEquals([], $result[$course1->id]);
// Course 2 has one group with no members.
$coursegroups = $result[$course2->id];
$coursegroup = $coursegroups[$group1->id];
$this->assertCount(1, $coursegroups);
$this->assertEquals([], $coursegroup->members);
$assertPropertiesMatch($group1, $coursegroup);
// Course 3 has one group with one member.
$coursegroups = $result[$course3->id];
$coursegroup = $coursegroups[$group2->id];
$groupmember1 = $coursegroup->members[$user1->id];
$this->assertCount(1, $coursegroups);
$this->assertCount(1, $coursegroup->members);
$assertPropertiesMatch($group2, $coursegroup);
$this->assertEquals($user1->id, $groupmember1->userid);
// Course 4 has one group with multiple members.
$coursegroups = $result[$course4->id];
$coursegroup = $coursegroups[$group3->id];
$groupmember1 = $coursegroup->members[$user1->id];
$groupmember2 = $coursegroup->members[$user2->id];
$this->assertCount(1, $coursegroups);
$this->assertCount(2, $coursegroup->members);
$assertPropertiesMatch($group3, $coursegroup);
$this->assertEquals($user1->id, $groupmember1->userid);
$this->assertEquals($user2->id, $groupmember2->userid);
// Course 5 has multiple groups with no members.
$coursegroups = $result[$course5->id];
$coursegroup1 = $coursegroups[$group4->id];
$coursegroup2 = $coursegroups[$group5->id];
$this->assertCount(2, $coursegroups);
$this->assertEquals([], $coursegroup1->members);
$this->assertEquals([], $coursegroup2->members);
$assertPropertiesMatch($group4, $coursegroup1);
$assertPropertiesMatch($group5, $coursegroup2);
// Course 6 has multiple groups with one member.
$coursegroups = $result[$course6->id];
$coursegroup1 = $coursegroups[$group6->id];
$coursegroup2 = $coursegroups[$group7->id];
$group1member1 = $coursegroup1->members[$user1->id];
$group2member1 = $coursegroup2->members[$user1->id];
$this->assertCount(2, $coursegroups);
$this->assertCount(1, $coursegroup1->members);
$this->assertCount(1, $coursegroup2->members);
$assertPropertiesMatch($group6, $coursegroup1);
$assertPropertiesMatch($group7, $coursegroup2);
$this->assertEquals($user1->id, $group1member1->userid);
$this->assertEquals($user1->id, $group2member1->userid);
// Course 7 has multiple groups with multiple members.
$coursegroups = $result[$course7->id];
$coursegroup1 = $coursegroups[$group8->id];
$coursegroup2 = $coursegroups[$group9->id];
$group1member1 = $coursegroup1->members[$user1->id];
$group1member2 = $coursegroup1->members[$user2->id];
$group2member1 = $coursegroup2->members[$user1->id];
$group2member2 = $coursegroup2->members[$user2->id];
$this->assertCount(2, $coursegroups);
$this->assertCount(2, $coursegroup1->members);
$this->assertCount(2, $coursegroup2->members);
$assertPropertiesMatch($group8, $coursegroup1);
$assertPropertiesMatch($group9, $coursegroup2);
$this->assertEquals($user1->id, $group1member1->userid);
$this->assertEquals($user2->id, $group1member2->userid);
$this->assertEquals($user1->id, $group2member1->userid);
$this->assertEquals($user2->id, $group2member2->userid);
}
}