/** * Test get_enrolled_users */ public function test_get_enrolled_users() { global $USER; $this->resetAfterTest(true); $course = self::getDataGenerator()->create_course(); $user1 = self::getDataGenerator()->create_user(); $user2 = self::getDataGenerator()->create_user(); $user3 = self::getDataGenerator()->create_user(); $this->setUser($user3); // Set the required capabilities by the external function. $context = context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $context->id); $this->assignUserCapability('moodle/user:viewdetails', $context->id, $roleid); // Enrol the users in the course. $this->getDataGenerator()->enrol_user($user1->id, $course->id, $roleid, 'manual'); $this->getDataGenerator()->enrol_user($user2->id, $course->id, $roleid, 'manual'); $this->getDataGenerator()->enrol_user($user3->id, $course->id, $roleid, 'manual'); // Call the external function. $enrolledusers = core_enrol_external::get_enrolled_users($course->id); // We need to execute the return values cleaning process to simulate the web service server. $enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers); // Check the result set. $this->assertEquals(3, count($enrolledusers)); $this->assertArrayHasKey('email', $enrolledusers[0]); // Call the function with some parameters set. $enrolledusers = core_enrol_external::get_enrolled_users($course->id, array(array('name' => 'limitfrom', 'value' => 2), array('name' => 'limitnumber', 'value' => 1), array('name' => 'userfields', 'value' => 'id'))); // We need to execute the return values cleaning process to simulate the web service server. $enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers); // Check the result set, we should only get the 3rd result, which is $user3. $this->assertCount(1, $enrolledusers); $this->assertEquals($user3->id, $enrolledusers[0]['id']); $this->assertArrayHasKey('id', $enrolledusers[0]); $this->assertArrayNotHasKey('email', $enrolledusers[0]); // Call without required capability. $this->unassignUserCapability('moodle/course:viewparticipants', $context->id, $roleid); $this->setExpectedException('moodle_exception'); $categories = core_enrol_external::get_enrolled_users($course->id); }
/** * Test get_enrolled_users */ public function test_get_enrolled_users() { global $USER; $this->resetAfterTest(true); $course = self::getDataGenerator()->create_course(); $user1 = self::getDataGenerator()->create_user(); $user2 = self::getDataGenerator()->create_user(); // Set the required capabilities by the external function. $context = context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $context->id); $this->assignUserCapability('moodle/user:viewdetails', $context->id, $roleid); // Enrol the users in the course. // We use the manual plugin. $enrol = enrol_get_plugin('manual'); $enrolinstances = enrol_get_instances($course->id, true); foreach ($enrolinstances as $courseenrolinstance) { if ($courseenrolinstance->enrol == "manual") { $instance = $courseenrolinstance; break; } } $enrol->enrol_user($instance, $user1->id, $roleid); $enrol->enrol_user($instance, $user2->id, $roleid); $enrol->enrol_user($instance, $USER->id, $roleid); // Call the external function. $enrolledusers = core_enrol_external::get_enrolled_users($course->id); // We need to execute the return values cleaning process to simulate the web service server. $enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers); // Check we retrieve the good total number of enrolled users. $this->assertEquals(3, count($enrolledusers)); // Call without required capability. $this->unassignUserCapability('moodle/course:viewparticipants', $context->id, $roleid); $this->setExpectedException('moodle_exception'); $categories = core_enrol_external::get_enrolled_users($course->id); }
/** * Returns description of method result value * * @return external_description * @since Moodle 2.1 * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. * @todo MDL-31194 This will be deleted in Moodle 2.5. * @see core_enrol_external::get_enrolled_users_returns() */ public static function get_users_by_courseid_returns() { global $CFG; require_once $CFG->dirroot . '/enrol/externallib.php'; return core_enrol_external::get_enrolled_users_returns(); }
/** * Test get_enrolled_users from core_enrol_external with some parameters set. */ public function test_get_enrolled_users_with_parameters() { $capability = 'moodle/course:viewparticipants'; $data = $this->get_enrolled_users_setup($capability); // Call the function with some parameters set. $enrolledusers = core_enrol_external::get_enrolled_users($data->course->id, array(array('name' => 'limitfrom', 'value' => 2), array('name' => 'limitnumber', 'value' => 1), array('name' => 'userfields', 'value' => 'id'))); // We need to execute the return values cleaning process to simulate the web service server. $enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers); // Check the result set, we should only get the 3rd result, which is $user3. $this->assertCount(1, $enrolledusers); $this->assertEquals($data->user3->id, $enrolledusers[0]['id']); $this->assertArrayHasKey('id', $enrolledusers[0]); $this->assertArrayNotHasKey('email', $enrolledusers[0]); }