. namespace core\tests; /** * A string manager which supports mocking individual strings. * * @package core * @copyright Andrew Lyons * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class mocking_string_manager extends \core_string_manager_standard { /** @var array The list of strings */ private $strings = []; #[\Override] public function get_string($identifier, $component = '', $a = null, $lang = null) { if (isset($this->strings["{$component}/{$identifier}"])) { return $this->strings["{$component}/{$identifier}"]; } return parent::get_string($identifier, $component, $a, $lang); } /** * Mock a string. * * @param string $identifier * @param string $component * @param string $value * @return void */ public function mock_string( string $identifier, string $component, string $value, ): void { $this->strings["{$component}/{$identifier}"] = $value; } }