From b363ca55ebe2bd99ebdcd1057cdf197cfc69981d Mon Sep 17 00:00:00 2001 From: liugang Date: Sun, 7 Sep 2025 03:16:36 +0800 Subject: [PATCH] + [misc] Add unit tests for biModel::parseToStatement() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/bi/test/lib/bi.unittest.class.php | 18 ++++++++++++++++ module/bi/test/model/parsetostatement.php | 26 +++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100755 module/bi/test/model/parsetostatement.php diff --git a/module/bi/test/lib/bi.unittest.class.php b/module/bi/test/lib/bi.unittest.class.php index ddf567fee6..8c5ba74676 100644 --- a/module/bi/test/lib/bi.unittest.class.php +++ b/module/bi/test/lib/bi.unittest.class.php @@ -159,4 +159,22 @@ class biTest return $result; } + + /** + * Test parseToStatement method. + * + * @param string $sql + * @access public + * @return mixed + */ + public function parseToStatementTest($sql) + { + $result = $this->objectModel->parseToStatement($sql); + if(dao::isError()) return dao::getError(); + + if($result === false) return false; + if(is_object($result)) return 'object'; + + return $result; + } } diff --git a/module/bi/test/model/parsetostatement.php b/module/bi/test/model/parsetostatement.php new file mode 100755 index 0000000000..77f21dc549 --- /dev/null +++ b/module/bi/test/model/parsetostatement.php @@ -0,0 +1,26 @@ +#!/usr/bin/env php +parseToStatementTest('SELECT id, name FROM zt_user')) && p() && e('object'); // 测试简单SELECT语句 +r($bi->parseToStatementTest('SELECT id, name FROM zt_user WHERE deleted = "0"')) && p() && e('object'); // 测试带WHERE条件的SELECT语句 +r($bi->parseToStatementTest('SELECT u.id, u.name FROM zt_user u LEFT JOIN zt_group g ON u.id = g.account')) && p() && e('object'); // 测试带JOIN的复杂SQL语句 +r($bi->parseToStatementTest('')) && p() && e('0'); // 测试空字符串 +r($bi->parseToStatementTest('INVALID SQL QUERY')) && p() && e('0'); // 测试无效SQL语句 \ No newline at end of file