* Refactor upgradeModel::checkProcess, and add its unit test.
This commit is contained in:
@@ -2162,18 +2162,19 @@ class upgradeModel extends model
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查流程。
|
||||
* Check weither process or not.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function checkProcess()
|
||||
public function checkProcess(): array
|
||||
{
|
||||
$fromVersion = $this->config->installedVersion;
|
||||
$needProcess = array();
|
||||
if(strpos($fromVersion, 'ipd') !== false) return $needProcess;
|
||||
if(strpos($fromVersion, 'max') === false and strpos($fromVersion, 'biz') === false and (strpos($fromVersion, 'pro') === false ? version_compare($fromVersion, '8.3', '<') : version_compare($fromVersion, 'pro5.4', '<'))) $needProcess['updateFile'] = 'process';
|
||||
if(strpos($fromVersion, 'max') === false and $this->config->systemMode == 'new')
|
||||
if(strpos($fromVersion, 'max') === false && strpos($fromVersion, 'biz') === false && (strpos($fromVersion, 'pro') === false ? version_compare($fromVersion, '8.3', '<') : version_compare($fromVersion, 'pro5.4', '<'))) $needProcess['updateFile'] = 'process';
|
||||
if(strpos($fromVersion, 'max') === false && $this->config->systemMode == 'new')
|
||||
{
|
||||
if(strpos($fromVersion, 'pro') !== false)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
|
||||
title=测试 upgradeModel->checkProcess();
|
||||
cid=1
|
||||
|
||||
- 测试版本 18.1 管理模式 new 的流程 @0
|
||||
- 测试版本 18.1 管理模式 classic 的流程 @0
|
||||
- 测试版本 pro10.1 管理模式 new 的流程 @changeEngine:notice
|
||||
- 测试版本 pro10.1 管理模式 classic 的流程 @changeEngine:notice
|
||||
- 测试版本 pro3.1 管理模式 new 的流程 @updateFile:process;search:notice;changeEngine:notice
|
||||
- 测试版本 pro3.1 管理模式 classic 的流程 @updateFile:process;changeEngine:notice
|
||||
- 测试版本 biz4.1 管理模式 new 的流程 @search:notice;changeEngine:notice
|
||||
- 测试版本 biz4.1 管理模式 classic 的流程 @changeEngine:notice
|
||||
- 测试版本 biz6.1 管理模式 new 的流程 @changeEngine:notice
|
||||
- 测试版本 biz6.1 管理模式 classic 的流程 @changeEngine:notice
|
||||
- 测试版本 max4.3 管理模式 new 的流程 @0
|
||||
- 测试版本 max4.3 管理模式 classic 的流程 @0
|
||||
- 测试版本 ipd1.1 管理模式 new 的流程 @0
|
||||
- 测试版本 ipd1.1 管理模式 classic 的流程 @0
|
||||
|
||||
**/
|
||||
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/upgrade.class.php';
|
||||
|
||||
zdTable('user')->config('user')->gen(5);
|
||||
|
||||
su('admin');
|
||||
|
||||
$upgrade = new upgradeTest();
|
||||
|
||||
$emptyErrors = array();
|
||||
|
||||
$versions = array('18.1', 'pro10.1', 'pro3.1', 'biz4.1', 'biz6.1', 'max4.3', 'ipd1.1');
|
||||
$systemMode = array('new', 'classic');
|
||||
|
||||
r($upgrade->checkProcessTest($versions[0], $systemMode[0])) && p() && e('0'); // 测试版本 18.1 管理模式 new 的流程
|
||||
r($upgrade->checkProcessTest($versions[0], $systemMode[1])) && p() && e('0'); // 测试版本 18.1 管理模式 classic 的流程
|
||||
r($upgrade->checkProcessTest($versions[1], $systemMode[0])) && p() && e('changeEngine:notice'); // 测试版本 pro10.1 管理模式 new 的流程
|
||||
r($upgrade->checkProcessTest($versions[1], $systemMode[1])) && p() && e('changeEngine:notice'); // 测试版本 pro10.1 管理模式 classic 的流程
|
||||
r($upgrade->checkProcessTest($versions[2], $systemMode[0])) && p() && e('updateFile:process;search:notice;changeEngine:notice'); // 测试版本 pro3.1 管理模式 new 的流程
|
||||
r($upgrade->checkProcessTest($versions[2], $systemMode[1])) && p() && e('updateFile:process;changeEngine:notice'); // 测试版本 pro3.1 管理模式 classic 的流程
|
||||
r($upgrade->checkProcessTest($versions[3], $systemMode[0])) && p() && e('search:notice;changeEngine:notice'); // 测试版本 biz4.1 管理模式 new 的流程
|
||||
r($upgrade->checkProcessTest($versions[3], $systemMode[1])) && p() && e('changeEngine:notice'); // 测试版本 biz4.1 管理模式 classic 的流程
|
||||
r($upgrade->checkProcessTest($versions[4], $systemMode[0])) && p() && e('changeEngine:notice'); // 测试版本 biz6.1 管理模式 new 的流程
|
||||
r($upgrade->checkProcessTest($versions[4], $systemMode[1])) && p() && e('changeEngine:notice'); // 测试版本 biz6.1 管理模式 classic 的流程
|
||||
r($upgrade->checkProcessTest($versions[5], $systemMode[0])) && p() && e('0'); // 测试版本 max4.3 管理模式 new 的流程
|
||||
r($upgrade->checkProcessTest($versions[5], $systemMode[1])) && p() && e('0'); // 测试版本 max4.3 管理模式 classic 的流程
|
||||
r($upgrade->checkProcessTest($versions[6], $systemMode[0])) && p() && e('0'); // 测试版本 ipd1.1 管理模式 new 的流程
|
||||
r($upgrade->checkProcessTest($versions[6], $systemMode[1])) && p() && e('0'); // 测试版本 ipd1.1 管理模式 classic 的流程
|
||||
@@ -220,4 +220,24 @@ class upgradeTest
|
||||
$return = $this->objectModel->getError();
|
||||
return implode(',', $return);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试检查流程。
|
||||
* Test check weither process or not.
|
||||
*
|
||||
* @param string $installedVersion
|
||||
* @param string $systemMode
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
public function checkProcessTest(string $installedVersion, string $systemMode): string
|
||||
{
|
||||
global $tester;
|
||||
$tester->config->installedVersion = $installedVersion;
|
||||
$tester->config->systemMode = $systemMode;
|
||||
$process = $this->objectModel->checkProcess();
|
||||
$return = '';
|
||||
foreach($process as $key => $value) $return .= "{$key}:{$value};";
|
||||
return trim($return, ';');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user