From dc923f5869ef2450dbf80a1208b9d92fdaf004a1 Mon Sep 17 00:00:00 2001 From: liugang Date: Sat, 13 Sep 2025 04:09:14 +0800 Subject: [PATCH] + [misc] Add unit tests for blockZen::getAvailableModules() 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 --- .../block/test/lib/block.unittest.class.php | 34 +++++++++++++++++++ module/block/test/zen/getavailablemodules.php | 27 +++++++++++++++ 2 files changed, 61 insertions(+) create mode 100755 module/block/test/zen/getavailablemodules.php diff --git a/module/block/test/lib/block.unittest.class.php b/module/block/test/lib/block.unittest.class.php index cfbf92d1a9..52733e04a2 100644 --- a/module/block/test/lib/block.unittest.class.php +++ b/module/block/test/lib/block.unittest.class.php @@ -872,4 +872,38 @@ class blockTest return $result; } + + /** + * Test getAvailableModules method in zen layer. + * + * @param string $dashboard + * @access public + * @return array + */ + public function getAvailableModulesTest(string $dashboard) + { + global $tester; + + include_once dirname(__FILE__, 3) . '/model.php'; + + if (!class_exists('block')) { + class_alias('blockModel', 'block'); + } + + include_once dirname(__FILE__, 3) . '/zen.php'; + + $blockZen = new blockZen(); + $blockZen->block = $this->objectModel; + + // 使用反射访问受保护的方法 + $reflection = new ReflectionClass($blockZen); + $method = $reflection->getMethod('getAvailableModules'); + $method->setAccessible(true); + + $result = $method->invoke($blockZen, $dashboard); + + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/block/test/zen/getavailablemodules.php b/module/block/test/zen/getavailablemodules.php new file mode 100755 index 0000000000..f101d42dc5 --- /dev/null +++ b/module/block/test/zen/getavailablemodules.php @@ -0,0 +1,27 @@ +#!/usr/bin/env php +getAvailableModulesTest('my'))) && p() && e('7'); +r(count($blockTest->getAvailableModulesTest('product'))) && p() && e('0'); +r(count($blockTest->getAvailableModulesTest('project'))) && p() && e('0'); +r(count($blockTest->getAvailableModulesTest('execution'))) && p() && e('0'); +r(count($blockTest->getAvailableModulesTest('qa'))) && p() && e('0'); \ No newline at end of file