* [misc] Enhance unit tests for extensionModel::executeDB() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:15:57 +08:00
co-authored by Claude
parent a2b7129f90
commit ea769b1dde
2 changed files with 72 additions and 9 deletions
@@ -593,6 +593,21 @@ class extensionTest
return $result;
}
/**
* Test checkVersion method.
*
* @param string $version
* @access public
* @return bool
*/
public function checkVersionTest(string $version)
{
$result = $this->objectModel->checkVersion($version);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test version of compareForLimit method.
*
@@ -621,4 +636,35 @@ class extensionTest
return $result;
}
/**
* Test erasePackage method.
*
* @param string $extension
* @access public
* @return array
*/
public function erasePackageTest(string $extension): array
{
$result = $this->objectModel->erasePackage($extension);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test executeDB method.
*
* @param string $extension
* @param string $method
* @access public
* @return object
*/
public function executeDBTest(string $extension, string $method = 'install'): object
{
$result = $this->objectModel->executeDB($extension, $method);
if(dao::isError()) return dao::getError();
return $result;
}
}
+26 -9
View File
@@ -1,22 +1,39 @@
#!/usr/bin/env php
<?php
/**
title=测试 extensionModel->executeDB();
title=测试 extensionModel::executeDB();
timeout=0
cid=1
cid=0
- 执行code1插件的安装SQL语句。属性result @ok
- 执行code1插件的卸载SQL语句。属性result @ok
- 步骤1:执行有效扩展的安装SQL属性result @ok
- 步骤2:执行有效扩展的卸载SQL属性result @ok
- 步骤3:不存在SQL文件的扩展属性result @ok
- 步骤4:默认参数调用(install)属性result @ok
- 步骤5:包含无效SQL的扩展属性result @fail
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
su('admin');
include dirname(__FILE__, 2) . '/lib/extension.unittest.class.php';
zenData('extension')->gen(10);
global $tester;
$tester->loadModel('extension');
su('admin');
r($tester->extension->executeDB('code1', 'install')) && p('result') && e('ok'); // 执行code1插件的安装SQL语句。
r($tester->extension->executeDB('code1', 'uninstall')) && p('result') && e('ok'); // 执行code1插件的卸载SQL语句。
$extensionTest = new extensionTest();
// 设置临时的pkgRoot用于测试
global $tester;
$originalPkgRoot = $tester->extension->pkgRoot;
$tester->extension->pkgRoot = '/tmp/pkg/';
r($extensionTest->executeDBTest('code1', 'install')) && p('result') && e('ok'); // 步骤1:执行有效扩展的安装SQL
r($extensionTest->executeDBTest('code1', 'uninstall')) && p('result') && e('ok'); // 步骤2:执行有效扩展的卸载SQL
r($extensionTest->executeDBTest('nonexistent')) && p('result') && e('ok'); // 步骤3:不存在SQL文件的扩展
r($extensionTest->executeDBTest('code1')) && p('result') && e('ok'); // 步骤4:默认参数调用(install)
r($extensionTest->executeDBTest('code2', 'install')) && p('result') && e('fail'); // 步骤5:包含无效SQL的扩展
// 恢复原始pkgRoot
$tester->extension->pkgRoot = $originalPkgRoot;