From e76e431c6658fdb796d5a9fe1009aef9a37f11de Mon Sep 17 00:00:00 2001 From: jerome mouneyrac Date: Tue, 30 Nov 2010 07:52:05 +0000 Subject: [PATCH] webservice MDL-21658 add moodle_group_get_groupmembers() and moodle_group_get_course_groups() unit test functions --- webservice/simpletest/testwebservice.php | 54 +++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/webservice/simpletest/testwebservice.php b/webservice/simpletest/testwebservice.php index da2eefd4627..86407ae8ef2 100644 --- a/webservice/simpletest/testwebservice.php +++ b/webservice/simpletest/testwebservice.php @@ -71,7 +71,9 @@ class webservice_test extends UnitTestCase { 'moodle_group_get_groups' => false, 'moodle_course_get_courses' => false, 'moodle_user_get_users_by_id' => false, - 'moodle_enrol_get_enrolled_users' => false + 'moodle_enrol_get_enrolled_users' => false, + 'moodle_group_get_course_groups' => false, + 'moodle_group_get_groupmembers' => false ); ////// WRITE DB tests //// @@ -973,5 +975,55 @@ class webservice_test extends UnitTestCase { } + /** + * READ ONLY test + * TODO: find a better solution that running web service for each course + * in the system + * For each courses, test the number of groups + * @param object $client + */ + function moodle_group_get_course_groups($client) { + global $DB; + + $courses = $DB->get_records('course'); + foreach($courses as $course) { + $coursegroups = groups_get_all_groups($course->id); + $function = 'moodle_group_get_course_groups'; + $params = array('courseid' => $course->id); + $groups = $client->call($function, $params); + $this->assertEqual(count($groups), count($coursegroups)); + } + } + + + /** + * READ ONLY test + * Test that the same number of members are returned + * for each existing group in the system + * @param object $client + */ + function moodle_group_get_groupmembers($client) { + global $DB; + + $groups = $DB->get_records('groups'); + $groupids = array(); + foreach ($groups as $group) { + $groupids[] = $group->id; + } + $function = 'moodle_group_get_groupmembers'; + $params = array('groupids' => $groupids); + $groupsmembers = $client->call($function, $params); + + foreach($groupsmembers as $groupmembers) { + $dbgroupmembers = groups_get_members($groupmembers['groupid']); + unset($groups[$groupmembers['groupid']]); + $this->assertEqual(count($dbgroupmembers), count($groupmembers['userids'])); + } + + //check that all existing groups have been returned by the web service function + $this->assertTrue(empty($groups)); + + + } }