From 9b7329c8583852e1f1aa46fb2133451d8dd8dfba Mon Sep 17 00:00:00 2001 From: liugang Date: Fri, 12 Sep 2025 12:09:03 +0800 Subject: [PATCH] + [misc] Add unit tests for searchTao::checkExecutionPriv() 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 --- .../search/test/lib/search.unittest.class.php | 22 ++++++++++++++ module/search/test/tao/checkexecutionpriv.php | 29 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 module/search/test/tao/checkexecutionpriv.php diff --git a/module/search/test/lib/search.unittest.class.php b/module/search/test/lib/search.unittest.class.php index 93728ed254..14103d1ce4 100755 --- a/module/search/test/lib/search.unittest.class.php +++ b/module/search/test/lib/search.unittest.class.php @@ -933,4 +933,26 @@ class searchTest return count($result); } + + /** + * Test checkExecutionPriv method. + * + * @param array $results + * @param array $objectIdList + * @param string $executions + * @access public + * @return int + */ + public function checkExecutionPrivTest(array $results, array $objectIdList, string $executions): int + { + // 使用反射访问私有方法 + $reflection = new ReflectionClass($this->objectTao); + $method = $reflection->getMethod('checkExecutionPriv'); + $method->setAccessible(true); + + $result = $method->invokeArgs($this->objectTao, array($results, $objectIdList, $executions)); + if(dao::isError()) return -1; + + return count($result); + } } diff --git a/module/search/test/tao/checkexecutionpriv.php b/module/search/test/tao/checkexecutionpriv.php new file mode 100755 index 0000000000..b46fe3eab6 --- /dev/null +++ b/module/search/test/tao/checkexecutionpriv.php @@ -0,0 +1,29 @@ +#!/usr/bin/env php +checkExecutionPrivTest(array(1 => (object)array('id' => 1), 2 => (object)array('id' => 2)), array(1 => 1, 2 => 2), '1,2,3')) && p() && e(2); +r($searchTest->checkExecutionPrivTest(array(1 => (object)array('id' => 1), 2 => (object)array('id' => 2)), array(4 => 1, 5 => 2), '1,2,3')) && p() && e(0); +r($searchTest->checkExecutionPrivTest(array(1 => (object)array('id' => 1), 2 => (object)array('id' => 2)), array(1 => 1, 2 => 2), '')) && p() && e(0); +r($searchTest->checkExecutionPrivTest(array(1 => (object)array('id' => 1), 2 => (object)array('id' => 2), 3 => (object)array('id' => 3)), array(1 => 1, 4 => 2, 2 => 3), '1,2')) && p() && e(2); +r($searchTest->checkExecutionPrivTest(array(1 => (object)array('id' => 1)), array('0' => 1), '1,2,0')) && p() && e(1); \ No newline at end of file