MDL-44794 group: unit test for groups_get_user_groups method.
authorSimey Lameze <simey@moodle.com>
Tue, 22 Jul 2014 01:47:35 +0000 (09:47 +0800)
committerSimey Lameze <simey@moodle.com>
Mon, 4 Aug 2014 03:59:06 +0000 (11:59 +0800)
lib/tests/grouplib_test.php
lib/tests/modinfolib_test.php

index ede1736..5c0d0f3 100644 (file)
@@ -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]);
+    }
 }
index 7695abb..5839547 100644 (file)
@@ -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);
     }
 }