/** * Get groups definition specified by ids * * @param array $groupids arrays of group ids * @return array of group objects (id, courseid, name, enrolmentkey) * @since Moodle 2.0 * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. * @see core_group_external::get_groups() */ public static function get_groups($groupids) { return core_group_external::get_groups($groupids); }
/** * Test get_groups */ public function test_get_groups() { global $DB; $this->resetAfterTest(true); $course = self::getDataGenerator()->create_course(); $group1data = array(); $group1data['courseid'] = $course->id; $group1data['name'] = 'Group Test 1'; $group1data['description'] = 'Group Test 1 description'; $group1data['descriptionformat'] = FORMAT_MOODLE; $group1data['enrolmentkey'] = 'Test group enrol secret phrase'; $group2data = array(); $group2data['courseid'] = $course->id; $group2data['name'] = 'Group Test 2'; $group2data['description'] = 'Group Test 2 description'; $group1 = self::getDataGenerator()->create_group($group1data); $group2 = self::getDataGenerator()->create_group($group2data); // Set the required capabilities by the external function $context = context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:managegroups', $context->id); $this->assignUserCapability('moodle/course:view', $context->id, $roleid); // Call the external function. $groups = core_group_external::get_groups(array($group1->id, $group2->id)); // We need to execute the return values cleaning process to simulate the web service server. $groups = external_api::clean_returnvalue(core_group_external::get_groups_returns(), $groups); // Checks against DB values $this->assertEquals(2, count($groups)); foreach ($groups as $group) { $dbgroup = $DB->get_record('groups', array('id' => $group['id']), '*', MUST_EXIST); switch ($dbgroup->name) { case $group1->name: $groupdescription = $group1->description; $groupcourseid = $group1->courseid; $this->assertEquals($dbgroup->descriptionformat, $group1->descriptionformat); $this->assertEquals($dbgroup->enrolmentkey, $group1->enrolmentkey); break; case $group2->name: $groupdescription = $group2->description; $groupcourseid = $group2->courseid; break; default: throw new moodle_exception('unknowgroupname'); break; } $this->assertEquals($dbgroup->description, $groupdescription); $this->assertEquals($dbgroup->courseid, $groupcourseid); } // Call without required capability $this->unassignUserCapability('moodle/course:managegroups', $context->id, $roleid); $this->setExpectedException('required_capability_exception'); $groups = core_group_external::get_groups(array($group1->id, $group2->id)); }