Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?php// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>.namespace tool_admin_presets\local\action;/*** Tests for the base class.** @package tool_admin_presets* @category test* @copyright 2021 Sara Arjona (sara@moodle.com)* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later* @coversDefaultClass \tool_admin_presets\local\action\base*/class base_test extends \advanced_testcase {/*** Test the behaviour of log() method.** @covers ::log* @dataProvider log_provider** @param string $action Action to log.* @param string $mode Mode to log.* @param string|null $expectedclassname The expected classname or null if no event is expected.*/public function test_base_log(string $action, string $mode, ?string $expectedclassname): void {$this->resetAfterTest();$this->setAdminUser();// Initialise the parameters and create the class.if (!empty($mode)) {$_POST['mode'] = $mode;}if (!empty($action)) {$_POST['action'] = $action;}$base = new base();// Redirect events (to capture them) and call to the log method.$sink = $this->redirectEvents();$base->log();$events = $sink->get_events();$sink->close();$event = reset($events);// Validate event data.if (is_null($expectedclassname)) {$this->assertFalse($event);} else {$this->assertInstanceOf('\\tool_admin_presets\\event\\' . $expectedclassname, $event);}}/*** Data provider for test_base_log().** @return array*/public function log_provider(): array {return [// Action = base.'action=base and mode = show' => ['action' => 'base','mode' => 'show','expectedclassname' => 'presets_listed',],'action=base and mode = execute' => ['action' => 'base','mode' => 'execute','expectedclassname' => 'presets_listed',],// Action = delete.'action=delete and mode = show' => ['action' => 'delete','mode' => 'show','expectedclassname' => null,],'action=delete and mode = execute' => ['action' => 'delete','mode' => 'execute','expectedclassname' => 'preset_deleted',],'mode = delete and action = base' => ['action' => 'base','mode' => 'delete','expectedclassname' => 'preset_deleted',],// Action = export.'action=export and mode = show' => ['action' => 'export','mode' => 'show','expectedclassname' => null,],'action=export and mode = execute' => ['action' => 'export','mode' => 'execute','expectedclassname' => 'preset_exported',],'mode = export and action = download_xml' => ['action' => 'export','mode' => 'download_xml','expectedclassname' => 'preset_downloaded',],// Action = load.'action=load and mode = show' => ['action' => 'load','mode' => 'show','expectedclassname' => 'preset_previewed',],'action=load and mode = execute' => ['action' => 'load','mode' => 'execute','expectedclassname' => 'preset_loaded',],// Unexisting action/method.'Unexisting action' => ['action' => 'unexisting','mode' => 'show','expectedclassname' => null,],'Unexisting mode' => ['action' => 'delete','mode' => 'unexisting','expectedclassname' => null,],];}}