* [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:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user