From a0372a4019f5d85b7d3365f09ca195bd335cc29c Mon Sep 17 00:00:00 2001 From: Simey Lameze Date: Tue, 22 Jul 2014 09:47:35 +0800 Subject: [PATCH] MDL-44794 group: unit test for groups_get_user_groups method. --- lib/tests/grouplib_test.php | 71 +++++++++++++++++++++++++++++++++++ lib/tests/modinfolib_test.php | 16 ++++---- 2 files changed, 79 insertions(+), 8 deletions(-) diff --git a/lib/tests/grouplib_test.php b/lib/tests/grouplib_test.php index ede1736f611..5c0d0f3c2bf 100644 --- a/lib/tests/grouplib_test.php +++ b/lib/tests/grouplib_test.php @@ -767,4 +767,75 @@ class core_grouplib_testcase extends advanced_testcase { $this->assertEquals('Group 1', $groups[0]->name); $this->assertEquals('Group 2', $groups[1]->name); } + + /** + * Tests for groups_get_user_groups() method. + */ + public function test_groups_get_user_groups() { + $this->resetAfterTest(true); + $generator = $this->getDataGenerator(); + + // Create courses. + $course1 = $generator->create_course(); + $course2 = $generator->create_course(); + + // Create users. + $user1 = $generator->create_user(); + $user2 = $generator->create_user(); + $user3 = $generator->create_user(); + + // Enrol users. + $generator->enrol_user($user1->id, $course1->id); + $generator->enrol_user($user1->id, $course2->id); + $generator->enrol_user($user2->id, $course2->id); + $generator->enrol_user($user3->id, $course2->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. + $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))); + + // Get user groups. + $usergroups1 = groups_get_user_groups($course1->id, $user1->id); + $usergroups2 = groups_get_user_groups($course2->id, $user2->id);; + + // Assert return data. + $this->assertEquals($group1->id, $usergroups1[0][0]); + $this->assertEquals($group2->id, $usergroups2[0][0]); + + // Now, test with groupings. + $grouping1 = $generator->create_grouping(array('courseid' => $course1->id)); + $grouping2 = $generator->create_grouping(array('courseid' => $course2->id)); + + // Assign the groups to grouping. + groups_assign_grouping($grouping1->id, $group1->id); + groups_assign_grouping($grouping2->id, $group2->id); + groups_assign_grouping($grouping2->id, $group3->id); + + // Test with grouping. + $usergroups1 = groups_get_user_groups($course1->id, $user1->id); + $usergroups2 = groups_get_user_groups($course2->id, $user2->id); + $this->assertArrayHasKey($grouping1->id, $usergroups1); + $this->assertArrayHasKey($grouping2->id, $usergroups2); + + // Test user without a group. + $usergroups1 = groups_get_user_groups($course2->id, $user3->id); + $this->assertCount(0, $usergroups1[0]); + + // Test with userid = 0. + $usergroups1 = groups_get_user_groups($course1->id, 0); + $usergroups2 = groups_get_user_groups($course2->id, 0); + $this->assertCount(0, $usergroups1[0]); + $this->assertCount(0, $usergroups2[0]); + + // Test with courseid = 0. + $usergroups1 = groups_get_user_groups(0, $user1->id); + $usergroups2 = groups_get_user_groups(0, $user2->id); + $this->assertCount(0, $usergroups1[0]); + $this->assertCount(0, $usergroups2[0]); + } } diff --git a/lib/tests/modinfolib_test.php b/lib/tests/modinfolib_test.php index 7695abbb3e4..5839547cf5f 100644 --- a/lib/tests/modinfolib_test.php +++ b/lib/tests/modinfolib_test.php @@ -942,27 +942,27 @@ class core_modinfolib_testcase extends advanced_testcase { $grouping2 = $generator->create_grouping(array('courseid' => $course2->id)); // Assign and assert group to groupings. - $this->assertTrue(groups_assign_grouping($grouping1->id, $group1->id)); - $this->assertTrue(groups_assign_grouping($grouping2->id, $group2->id)); - $this->assertTrue(groups_assign_grouping($grouping2->id, $group3->id)); + 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->assertEquals(1, count($groups)); - $this->assertTrue(array_key_exists($group1->id, $groups)); + $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->assertEquals(2, count($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->assertEquals(0, count($groups)); - $this->assertFalse(array_key_exists($group1->id, $groups)); + $this->assertCount(0, $groups); + $this->assertArrayNotHasKey($group1->id, $groups); } }