+ [misc] Add unit tests for blockZen::getAvailableModules() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-15 15:09:47 +08:00
co-authored by Claude
parent 8eee4e66f3
commit dc923f5869
2 changed files with 61 additions and 0 deletions
@@ -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;
}
}
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env php
<?php
/**
title=测试 blockZen::getAvailableModules();
timeout=0
cid=0
- 执行blockTest模块的getAvailableModulesTest方法,参数是'my' @7
- 执行blockTest模块的getAvailableModulesTest方法,参数是'product' @0
- 执行blockTest模块的getAvailableModulesTest方法,参数是'project' @0
- 执行blockTest模块的getAvailableModulesTest方法,参数是'execution' @0
- 执行blockTest模块的getAvailableModulesTest方法,参数是'qa' @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/block.unittest.class.php';
$blockTest = new blockTest();
r(count($blockTest->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');