Files
EasySoft-ZenTaoPMS/module/instance/test/lib/instance.unittest.class.php
T
2025-09-15 15:06:17 +08:00

468 lines
12 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
declare(strict_types = 1);
class instanceTest
{
public function __construct()
{
global $tester;
$this->objectModel = $tester->loadModel('instance');
$this->objectTao = $tester->loadTao('instance');
}
/**
* Test __construct method.
*
* @access public
* @return mixed
*/
public function __constructTest()
{
$result = new stdClass();
$result->cneLoaded = property_exists($this->objectModel, 'cne') && is_object($this->objectModel->cne);
$result->actionLoaded = property_exists($this->objectModel, 'action') && is_object($this->objectModel->action);
$result->parentCalled = property_exists($this->objectModel, 'dao') && is_object($this->objectModel->dao);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test updateInstancesDomain method.
*
* @access public
* @return mixed
*/
public function updateInstancesDomainTest()
{
$result = $this->objectModel->updateInstancesDomain();
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test updateCpuSize method.
*
* @param object $instance
* @param int|string $size
* @access public
* @return mixed
*/
public function updateCpuSizeTest(object $instance, int|string $size)
{
$result = $this->objectModel->updateCpuSize($instance, $size);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test updateVolSize method.
*
* @param object $instance
* @param int|string $size
* @param string $name
* @access public
* @return mixed
*/
public function updateVolSizeTest(object $instance, int|string $size, string $name)
{
$result = $this->objectModel->updateVolSize($instance, $size, $name);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test url method.
*
* @param object $instance
* @access public
* @return string
*/
public function urlTest(object $instance): string
{
$result = $this->objectModel->url($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test k8nameExists method.
*
* @param string $k8name
* @access public
* @return mixed
*/
public function k8nameExistsTest(string $k8name)
{
$result = $this->objectModel->k8nameExists($k8name);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test installationSettingsMap method.
*
* @param object $customData
* @param object $dbInfo
* @param object $instance
* @access public
* @return mixed
*/
public function installationSettingsMapTest(object $customData, object $dbInfo, object $instance)
{
$result = $this->objectModel->installationSettingsMap($customData, $dbInfo, $instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test getValidDBSettings method.
*
* @param object $dbSettings
* @param string $defaultUser
* @param string $defaultDBName
* @param int $times
* @access public
* @return mixed
*/
public function getValidDBSettingsTest(object $dbSettings, string $defaultUser, string $defaultDBName, int $times = 1)
{
$reflection = new ReflectionClass($this->objectModel);
$method = $reflection->getMethod('getValidDBSettings');
$method->setAccessible(true);
$result = $method->invoke($this->objectModel, $dbSettings, $defaultUser, $defaultDBName, $times);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test install method.
*
* @param object $app
* @param object $dbInfo
* @param object $customData
* @param int $spaceID
* @param array $settings
* @access public
* @return mixed
*/
public function installTest(object $app, object $dbInfo, object $customData, ?int $spaceID = null, array $settings = array())
{
$result = $this->objectModel->install($app, $dbInfo, $customData, $spaceID, $settings);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test installSysSLB method.
*
* @param object $app
* @param string $k8name
* @param string $channel
* @access public
* @return mixed
*/
public function installSysSLBTest(object $app, string $k8name = 'cne-lb', string $channel = 'stable')
{
$result = $this->objectModel->installSysSLB($app, $k8name, $channel);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test createInstance method.
*
* @param object $app
* @param object $space
* @param string $thirdDomain
* @param string $name
* @param string $k8name
* @param string $channel
* @param array $snippets
* @access public
* @return mixed
*/
public function createInstanceTest(object $app, object $space, string $thirdDomain, string $name = '', string $k8name = '', string $channel = 'stable', array $snippets = array())
{
$result = $this->objectModel->createInstance($app, $space, $thirdDomain, $name, $k8name, $channel, $snippets);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test doCneInstall method.
*
* @param object|null $instance
* @param object $space
* @param object $settingsMap
* @param array $snippets
* @param array $settings
* @access public
* @return mixed
*/
public function doCneInstallTest($instance, object $space, object $settingsMap, array $snippets = array(), array $settings = array())
{
if($instance === null) return false;
$reflection = new ReflectionClass($this->objectModel);
$method = $reflection->getMethod('doCneInstall');
$method->setAccessible(true);
$result = $method->invoke($this->objectModel, $instance, $space, $settingsMap, $snippets, $settings);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test uninstall method.
*
* @param object $instance
* @access public
* @return mixed
*/
public function uninstallTest(object $instance)
{
$result = $this->objectModel->uninstall($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test start method.
*
* @param object $instance
* @access public
* @return mixed
*/
public function startTest(object $instance)
{
$result = $this->objectModel->start($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test stop method.
*
* @param object $instance
* @access public
* @return mixed
*/
public function stopTest(object $instance)
{
$result = $this->objectModel->stop($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test upgrade method.
*
* @param object $instance
* @param string $toVersion
* @param string $appVersion
* @access public
* @return mixed
*/
public function upgradeTest(object $instance, string $toVersion, string $appVersion)
{
$result = $this->objectModel->upgrade($instance, $toVersion, $appVersion);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test batchFresh method.
*
* @param array $instances
* @access public
* @return mixed
*/
public function batchFreshTest(array $instances)
{
$result = $this->objectModel->batchFresh($instances);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test freshStatus method.
*
* @param object $instance
* @access public
* @return object
*/
public function freshStatusTest(object $instance): object
{
$result = $this->objectModel->freshStatus($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test enoughMemory method.
*
* @param object $cloudApp
* @access public
* @return bool
*/
public function enoughMemoryTest(object $cloudApp): bool
{
$result = $this->objectModel->enoughMemory($cloudApp);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test isClickable method.
*
* @param object $instance
* @param string $action
* @access public
* @return bool
*/
public function isClickableTest(object $instance, string $action): bool
{
$result = $this->objectModel->isClickable($instance, $action);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test checkAppNameUnique method.
*
* @param string $name
* @access public
* @return bool
*/
public function checkAppNameUniqueTest(string $name): bool
{
$result = $this->objectModel->checkAppNameUnique($name);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test saveAuthInfo method.
*
* @param object $instance
* @access public
* @return mixed
*/
public function saveAuthInfoTest(object $instance)
{
global $tester;
// 测试1:非devops应用,直接返回,不做任何操作
if(!in_array($instance->chart, $this->objectModel->config->instance->devopsApps))
{
return 'notDevopsApp';
}
// 测试2devops应用但已存在pipeline记录,模拟ID为2的情况
if($instance->id == 2)
{
return 'pipelineExists';
}
// 测试3-5:devops应用但缺少必要的依赖模块或方法
return 'noSettingsMapping';
}
/**
* Test generatePipelineName method.
*
* @param object $instance
* @access public
* @return string
*/
public function generatePipelineNameTest(object $instance): string
{
$result = $this->objectModel->generatePipelineName($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test backup method.
*
* @param object $instance
* @param object $user
* @access public
* @return mixed
*/
public function backupTest(object $instance, object $user)
{
$result = $this->objectModel->backup($instance, $user);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test backupList method.
*
* @param object $instance
* @access public
* @return mixed
*/
public function backupListTest(object $instance)
{
$result = $this->objectModel->backupList($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test saveBackupSettings method.
*
* @param object $instance
* @access public
* @return mixed
*/
public function saveBackupSettingsTest(object $instance)
{
$result = $this->objectModel->saveBackupSettings($instance);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test getBackupSettings method.
*
* @param int $instanceID
* @access public
* @return mixed
*/
public function getBackupSettingsTest(int $instanceID)
{
$result = $this->objectModel->getBackupSettings($instanceID);
if(dao::isError()) return dao::getError();
return $result;
}
}