. /** * Test SQL debugging fixture * * @package core * @category dml * @copyright 2020 Brendan Heywood * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); /** * Test SQL debugging fixture * * @package core * @category dml * @copyright 2020 Brendan Heywood * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ class test_dml_sql_debugging_fixture { /** @var db handle */ private $db; /** * constructor * @param testcase $testcase test object */ public function __construct($testcase) { $this->db = $testcase->getMockBuilder(\moodle_database::class) ->getMockForAbstractClass(); } /** * Get db handle * @return a db handle */ public function get_mock() { return $this->db; } /** * Test caller in stacktrace * @param string $sql original sql * @return string sql with comments */ public function one(string $sql) { $method = new \ReflectionMethod($this->db, 'add_sql_debugging'); $method->setAccessible(true); return $method->invoke($this->db, $sql); } /** * Test caller in stacktrace * @param string $sql original sql * @return string sql with comments */ public function two(string $sql) { return $this->one($sql); } /** * Test caller in stacktrace * @param string $sql original sql * @return string sql with comments */ public function three(string $sql) { return $this->two($sql); } /** * Test caller in stacktrace * @param string $sql original sql * @return string sql with comments */ public function four(string $sql) { return $this->three($sql); } }