From 8be9386bdca3b375170295fa5e9108d112e068f3 Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Mon, 4 Aug 2014 12:07:24 +0800 Subject: [PATCH] MDL-44794 group: unit test for get_groups method. --- lib/tests/modinfolib_test.php | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/lib/tests/modinfolib_test.php b/lib/tests/modinfolib_test.php index 1abab2d5810..8aad3eea617 100644 --- a/lib/tests/modinfolib_test.php +++ b/lib/tests/modinfolib_test.php @@ -657,4 +657,67 @@ class core_modinfolib_testcase extends advanced_testcase { $this->assertFalse($cm->uservisible); $this->assertTrue($cm->is_user_access_restricted_by_capability()); } + + /** + * Tests for get_groups() method. + */ + public function test_get_groups() { + $this->resetAfterTest(); + $generator = $this->getDataGenerator(); + + // Create courses. + $course1 = $generator->create_course(); + $course2 = $generator->create_course(); + $course3 = $generator->create_course(); + + // Create users. + $user1 = $generator->create_user(); + $user2 = $generator->create_user(); + $user3 = $generator->create_user(); + + // Enrol users on courses. + $generator->enrol_user($user1->id, $course1->id); + $generator->enrol_user($user2->id, $course2->id); + $generator->enrol_user($user3->id, $course2->id); + $generator->enrol_user($user3->id, $course3->id); + + // Create groups. + $group1 = $generator->create_group(array('courseid' => $course1->id)); + $group2 = $generator->create_group(array('courseid' => $course2->id)); + $group3 = $generator->create_group(array('courseid' => $course2->id)); + + // Assign users to groups and assert the result. + $this->assertTrue($generator->create_group_member(array('groupid' => $group1->id, 'userid' => $user1->id))); + $this->assertTrue($generator->create_group_member(array('groupid' => $group2->id, 'userid' => $user2->id))); + $this->assertTrue($generator->create_group_member(array('groupid' => $group3->id, 'userid' => $user2->id))); + $this->assertTrue($generator->create_group_member(array('groupid' => $group2->id, 'userid' => $user3->id))); + + // Create groupings. + $grouping1 = $generator->create_grouping(array('courseid' => $course1->id)); + $grouping2 = $generator->create_grouping(array('courseid' => $course2->id)); + + // Assign and assert group to groupings. + groups_assign_grouping($grouping1->id, $group1->id); + groups_assign_grouping($grouping2->id, $group2->id); + groups_assign_grouping($grouping2->id, $group3->id); + + // Test with one single group. + $modinfo = get_fast_modinfo($course1, $user1->id); + $groups = $modinfo->get_groups($grouping1->id); + $this->assertCount(1, $groups); + $this->assertArrayHasKey($group1->id, $groups); + + // Test with two groups. + $modinfo = get_fast_modinfo($course2, $user2->id); + $groups = $modinfo->get_groups(); + $this->assertCount(2, $groups); + $this->assertTrue(in_array($group2->id, $groups)); + $this->assertTrue(in_array($group3->id, $groups)); + + // Test with no groups. + $modinfo = get_fast_modinfo($course3, $user3->id); + $groups = $modinfo->get_groups(); + $this->assertCount(0, $groups); + $this->assertArrayNotHasKey($group1->id, $groups); + } }