Files
EasySoft-ZenTaoPMS/module/store/test/store.class.php
T
2024-03-04 09:57:23 +08:00

237 lines
7.5 KiB
PHP
Executable File

<?php
declare(strict_types = 1);
class storeTest
{
private $objectModel;
public function __construct()
{
global $tester;
$this->objectModel = $tester->loadModel('store');
$this->objectModel->config->inQuickon = true;
$this->objectModel->config->k8space = 'quickon-system';
$this->objectModel->config->CNE->api->host = 'http://10.0.7.210:32380';
$this->objectModel->config->CNE->api->token = 'JMz7HCoQ3WHoYbpNyYNpvMfHqde9ugtV';
$this->objectModel->config->CNE->app->domain = 'dops.corp.cc';
$this->objectModel->config->cloud->api->host = 'http://api.qucheng.com';
$this->objectModel->config->cloud->api->channel = 'stable';
$this->objectModel->config->cloud->api->auth = 'X-Auth-Token';
$this->objectModel->config->cloud->api->token = '';
$this->objectModel->config->cloud->api->switchChannel = false;
}
/**
* 魔术方法,调用store模型中的方法。
* Magic method, call the method in the store model.
*
* @param string $name
* @param array $arguments
* @access public
* @return mixed
*/
public function __call($name, $arguments)
{
return $this->objectModel->$name(...$arguments);
}
/**
* 测试根据关键字查询应用市场应用列表。
* Test get app list from cloud market.
*
* @param string $orderBy
* @param string $keyword
* @param array $categories
* @param int $page
* @param int $pageSize
* @access public
* @return array|string
*/
public function searchAppsTest(string $orderBy = '', string $keyword = '', array $categories = array(), int $page = 1, int $pageSize = 20): array|string|int
{
$searchResult = $this->searchApps($orderBy, $keyword, $categories, $page, $pageSize);
if(!empty($keyword) && !empty($searchResult->total))
{
$firstData = $searchResult->apps[0];
return strpos($firstData->alias, $keyword) !== false ? 'Success' : 'Fail';
}
if($pageSize != 20 && !empty($searchResult->total)) return count($searchResult->apps);
return empty($searchResult->total) ? 'No data!' : 'Success';
}
/**
* 测试通过接口获取应用详情。
* Test get app info from cloud market.
*
* @param int $appID
* @param boolean $analysis true: log this request for analysis.
* @param string $name
* @param string $version
* @param string $channel
* @access public
* @return object|null
*/
public function getAppInfoTest(int $appID, bool $analysis = false, string $name = '', string $version ='', string $channel = ''): object|null
{
return $this->getAppInfo($appID, $analysis, $name, $version, $channel);
}
/**
* 测试根据名称查询多个应用信息。
* Test get app infos map by name array from cloud market.
*
* @param array $nameList
* @param string $channel
* @access public
* @return object|null
*/
public function getAppMapByNamesTest(array $nameList = array()): object|null
{
$result = $this->getAppMapByNames($nameList);
return empty((array)$result) ? null : $result;
}
/**
* 测试获取应用的可安装版本。
* Test get app version list to install.
*
* @param int $appID
* @param string $name
* @param string $channel
* @param int $page
* @param int $pageSize
* @access public
* @return array|int
*/
public function appVersionListTest(int $appID, string $name = '', string $channel = '', int $page = 1, int $pageSize = 3): array|int
{
$versionList = $this->appVersionList($appID, $name, $channel, $page, $pageSize);
if($pageSize != 3 && !empty($versionList)) return count($versionList);
return $versionList;
}
/**
* 测试获取版本键值对。
* Test get app version pairs by id.
*
* @param int $appID
* @access public
* @return array
*/
public function getVersionPairsTest(int $appID): array
{
return $this->getVersionPairs($appID);
}
/**
* 测试获取应用可以升级到的版本。
* Test get upgradable versions of app from cloud market.
*
* @param string $currentVersion
* @param int $appID appID is required if no appName.
* @param string $appName appName is required if no appID.
* @access public
* @return array
*/
public function getUpgradableVersionsTest(string $currentVersion, int $appID = 0, string $appName = ''): array
{
return $this->getUpgradableVersions($currentVersion, $appID, $appName);
}
/**
* 测试获取应用的最新版本。
* Test get the latest versions of app from cloud market.
*
* @param int $appID
* @param string $currentVersion
* @access public
* @return object|null
*/
public function appLatestVersionTest(int $appID, string $currentVersion): object|null
{
return $this->appLatestVersion($appID, $currentVersion);
}
/**
* 测试从云市场获取类别列表。
* Test get category list from cloud market.
*
* @access public
* @return string
*/
public function getCategoriesTest(): string
{
$result = $this->getCategories();
$categories = '';
foreach($result->categories as $categoryList) $categories .= $categoryList->alias . ' ';
return $categories;
}
/**
* 测试获取解决方案的配置信息。
* Test get solution config.
*
* @param string $type
* @param int|string $value
* @access public
* @return object
*/
public function solutionConfigTest(string $type, int|string $value): string
{
$result = $this->solutionConfig($type, $value);
return empty((array)$result) ? 'No data' : 'Success';
}
/**
* 测试根据参数获取解决方案信息。
* Test get solution info.
*
* @param string $type
* @param string $value
* @access public
* @return object|string
*/
public function getSolutionTest(string $type, string $value): object|string
{
$result = $this->getSolution($type, $value);
return empty((array)$result) ? 'No data' : $result;
}
/**
* 测试从渠成获取应用动态消息。
* Test get app dynamic news from Qucheng offical site.
*
* @param int $appID
* @param int $pageID
* @param int $recPerPage
* @access public
* @return string|int
*/
public function appDynamicTest(int $appID, int $pageID = 1, int $recPerPage = 20): string|int
{
$appInfo = $this->getAppInfo($appID);
$result = $this->appDynamic($appInfo, $pageID, $recPerPage);
if($recPerPage != 20 && !empty($result)) return count($result->articles);
return 'Success';
}
/**
* 测试从版本列表中选择最高版本并进行比较。
* Test pick highest version from version list and compared version.
*
* @param array $versionList
* @access public
* @return object|null
*/
public function pickHighestVersionTest(string $currentVersion, int $appID)
{
$versionList = $this->getUpgradableVersions($currentVersion, $appID);
$result = $this->pickHighestVersion($versionList);
return $result;
}
}