public function test_get_notes() { global $DB, $USER; $this->resetAfterTest(true); $course = self::getDataGenerator()->create_course(); // Set the required capabilities by the external function. $contextid = context_course::instance($course->id)->id; $roleid = $this->assignUserCapability('moodle/notes:manage', $contextid); $this->assignUserCapability('moodle/notes:view', $contextid, $roleid); $this->assignUserCapability('moodle/course:view', $contextid, $roleid); // Create test note data. $cnote = array(); $cnote['userid'] = $USER->id; $cnote['publishstate'] = 'personal'; $cnote['courseid'] = $course->id; $cnote['text'] = 'the text'; $cnotes = array($cnote); $creatednotes1 = core_notes_external::create_notes($cnotes); $creatednotes2 = core_notes_external::create_notes($cnotes); $creatednotes3 = core_notes_external::create_notes($cnotes); $creatednotes1 = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes1); $creatednotes2 = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes2); $creatednotes3 = external_api::clean_returnvalue(core_notes_external::create_notes_returns(), $creatednotes3); // Note 33 does not exist. $gnotes = array("notes"=>array($creatednotes1[0]['noteid'], $creatednotes2[0]['noteid'], $creatednotes3[0]['noteid'], 33)); $getnotes = core_notes_external::get_notes($gnotes); $getnotes = external_api::clean_returnvalue(core_notes_external::get_notes_returns(), $getnotes); $this->unassignUserCapability('moodle/notes:manage', $contextid, $roleid); // Confirm that base note data was retrieved correctly. $this->assertEquals($cnote['userid'], $getnotes["notes"][0]["userid"]); $this->assertEquals($cnote['text'], $getnotes["notes"][0]["text"]); $this->assertEquals($cnote['userid'], $getnotes["notes"][1]["userid"]); $this->assertEquals($cnote['text'], $getnotes["notes"][1]["text"]); $this->assertEquals($cnote['userid'], $getnotes["notes"][2]["userid"]); $this->assertEquals($cnote['text'], $getnotes["notes"][2]["text"]); $this->assertEquals("note", $getnotes["warnings"][0]["item"]); $this->assertEquals(33, $getnotes["warnings"][0]["itemid"]); $this->assertEquals("badid", $getnotes["warnings"][0]["warningcode"]); $this->assertEquals("Note does not exist", $getnotes["warnings"][0]["message"]); // Call without required capability. $this->unassignUserCapability('moodle/notes:view', $contextid, $roleid); $this->setExpectedException('required_capability_exception'); $creatednotes = core_notes_external::get_notes($gnotes); }