Merge branch 'MDL-70427' of git://github.com/paulholden/moodle

This commit is contained in:
Andrew Nicols 2021-07-22 11:22:13 +08:00
commit 4c9f590f18
5 changed files with 72 additions and 0 deletions

View file

@ -110,6 +110,46 @@ class core_adhoc_task_testcase extends advanced_testcase {
\core\task\manager::adhoc_task_complete($task);
}
/**
* Test queueing an adhoc task belonging to a component, where we set the task component accordingly
*/
public function test_queue_adhoc_task_for_component(): void {
$this->resetAfterTest();
$task = new \mod_forum\task\refresh_forum_post_counts();
$task->set_component('mod_test');
\core\task\manager::queue_adhoc_task($task);
$this->assertDebuggingNotCalled();
}
/**
* Test queueing an adhoc task belonging to a component, where we do not set the task component
*/
public function test_queue_task_for_component_without_set_component(): void {
$this->resetAfterTest();
$task = new \mod_forum\task\refresh_forum_post_counts();
\core\task\manager::queue_adhoc_task($task);
$this->assertDebuggingNotCalled();
// Assert the missing component was set.
$this->assertEquals('mod_forum', $task->get_component());
}
/**
* Test queueing an adhoc task belonging to an invalid component, where we do not set the task component
*/
public function test_queue_task_for_invalid_component_without_set_component(): void {
$this->resetAfterTest();
$task = new \mod_fake\task\adhoc_component_task();
\core\task\manager::queue_adhoc_task($task);
$this->assertDebuggingCalled('Component not set and the class namespace does not match a valid component (mod_fake).');
}
/**
* Test empty set of adhoc tasks
*/

View file

@ -62,3 +62,11 @@ class scheduled_test3_task extends \core\task\scheduled_task {
public function execute() {
}
}
namespace mod_fake\task;
class adhoc_component_task extends \core\task\adhoc_task {
public function execute() {
}
}

View file

@ -441,6 +441,7 @@ class core_task_logmanager extends advanced_testcase {
*/
protected function get_test_adhoc_task() : \core\task\adhoc_task {
$task = $this->getMockForAbstractClass(\core\task\adhoc_task::class);
$task->set_component('core');
// Mock a lock on the task.
$lock = $this->getMockBuilder(\core\lock\lock::class)