* adjust for unit test.

This commit is contained in:
王怡栋
2021-12-30 10:08:00 +08:00
parent 625a6a47c4
commit 061bf4388c
7 changed files with 286 additions and 20 deletions
+1 -1
View File
@@ -1360,7 +1360,7 @@ class commonModel extends model
* @access public
* @return bool
*/
public static function printLink($module, $method, $vars = '', $label, $target = '', $misc = '', $newline = true, $onlyBody = false, $object = null)
public static function printLink($module, $method, $vars = '', $label = '', $target = '', $misc = '', $newline = true, $onlyBody = false, $object = null)
{
/* Add data-app attribute. */
global $app;
+7 -7
View File
@@ -15,7 +15,7 @@ class companyModel extends model
{
/**
* Set menu.
*
*
* @param int $dept
* @access public
* @return void
@@ -31,7 +31,7 @@ class companyModel extends model
/**
* Get company list.
*
*
* @access public
* @return void
*/
@@ -42,7 +42,7 @@ class companyModel extends model
/**
* Get the first company.
*
*
* @access public
* @return void
*/
@@ -53,8 +53,8 @@ class companyModel extends model
/**
* Get company info by id.
*
* @param int $companyID
*
* @param int $companyID
* @access public
* @return object
*/
@@ -74,7 +74,7 @@ class companyModel extends model
* @access public
* @return array
*/
public function getUsers($browseType = 'inside', $type, $queryID, $deptID, $sort, $pager)
public function getUsers($browseType = 'inside', $type = '', $queryID = 0, $deptID = 0, $sort = '', $pager = null)
{
/* Get users. */
if($type == 'bydept')
@@ -131,7 +131,7 @@ class companyModel extends model
/**
* Update a company.
*
*
* @access public
* @return void
*/
+1 -1
View File
@@ -950,7 +950,7 @@ class mr extends control
$targetProject = $this->post->targetProject;
$targetBranch = $this->post->targetBranch;
$result = $this->mr->hasSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
$result = $this->mr->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
die(json_encode($result));
}
}
+16 -11
View File
@@ -93,7 +93,7 @@ class mrModel extends model
->add('createdDate', helper::now())
->get();
$result = $this->hasSameOpened($MR->gitlabID, $MR->sourceProject, $MR->sourceBranch, $MR->targetProject, $MR->targetBranch);
$result = $this->checkSameOpened($MR->gitlabID, $MR->sourceProject, $MR->sourceBranch, $MR->targetProject, $MR->targetBranch);
if($result['result'] == 'fail') return $result;
/* Exec Job */
@@ -206,7 +206,7 @@ class mrModel extends model
$MR->createdBy = $this->app->user->account;
$MR->createdDate = date('Y-m-d H:i:s');
$result = $this->hasSameOpened($MR->gitlabID, $MR->sourceProject, $MR->sourceBranch, $MR->targetProject, $MR->targetBranch);
$result = $this->checkSameOpened($MR->gitlabID, $MR->sourceProject, $MR->sourceBranch, $MR->targetProject, $MR->targetBranch);
if($result['result'] == 'fail')
{
dao::$errors[] = $result['message'];
@@ -547,13 +547,16 @@ class mrModel extends model
*/
public function apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch)
{
$url = sprintf($this->loadModel('gitlab')->getApiRoot($gitlabID), "/merge_requests") . "&state=opened&source_branch={$sourceBranch}&target_branch={$targetBranch}&source_project_id={$sourceProject}&target_project_id={$targetProject}";
if(empty($gitlabID) or empty($sourceProject) or empty($sourceBranch) or empty($targetProject) or empty($targetBranch)) return null;
$url = sprintf($this->loadModel('gitlab')->getApiRoot((int)$gitlabID), "/merge_requests") . "&state=opened&source_branch={$sourceBranch}&target_branch={$targetBranch}&source_project_id={$sourceProject}&target_project_id={$targetProject}";
$response = json_decode(commonModel::http($url));
if($response)
{
foreach($response as $mr)
{
if(empty($mr->source_project_id) or empty($mr->target_project_id)) return null;
if($mr->source_project_id == $sourceProject and $mr->target_project_id == $targetProject) return $mr;
}
}
@@ -1447,7 +1450,7 @@ class mrModel extends model
}
/**
* Has same opened mr for source branch.
* Check same opened mr for source branch.
*
* @param int $gitlabID
* @param int $sourceProject
@@ -1457,7 +1460,7 @@ class mrModel extends model
* @access public
* @return array
*/
public function hasSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch)
public function checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch)
{
if(empty($sourceProject) or empty($sourceBranch) or empty($targetProject) or empty($targetBranch)) return array('result' => 'success');
@@ -1485,20 +1488,22 @@ class mrModel extends model
*/
public function convertApiError($message)
{
if(is_array($message)) $message = $message[0];
if(!is_string($message)) return $message;
foreach($this->lang->mr->apiErrorMap as $key => $errorMsg)
{
if(strpos($errorMsg, '/') === 0)
{
$result = preg_match($errorMsg, $message[0], $matches);
$result = preg_match($errorMsg, $message, $matches);
if($result) $errorMessage = sprintf(zget($this->lang->mr->errorLang, $key), $matches[1]);
break;
}
else
elseif($message == $errorMsg)
{
if($message[0] == $errorMsg) $errorMessage = zget($this->lang->mr->errorLang, $key, $message[0]);
break;
$errorMessage = zget($this->lang->mr->errorLang, $key, $message);
}
if(isset($errorMessage)) break;
}
return isset($errorMessage) ? $errorMessage : $message[0];
return isset($errorMessage) ? $errorMessage : $message;
}
}
+123
View File
@@ -0,0 +1,123 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
/**
title=测试 mrModel::apiGetSameOpened();
cid=0
pid=0
使用正确的gitlabID,sourceProject,sourceBranch,targetProject,targetBranch >> success
使用空的gitlabID >> null
使用空的sourceProject >> null
使用空的sourceBranch >> null
使用空的targetProject >> null
使用空的targetBranch >> null
使用错误的gitlabID >> null
使用错误的sourceProject >> null
使用错误的sourceBranch >> null
使用错误的targetProject >> null
使用错误的targetBranch >> null
*/
$mrModel = $tester->loadModel('mr');
$gitlabID = '2';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if(isset($result->iid)) $result = 'success';
r($result) && p() && e('success'); //使用正确的gitlabID, sourceProject,sourceBranch,targetProject,targetBranch
$gitlabID = '';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用空的gitlabID
$gitlabID = '1';
$sourceProject = '';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用空的sourceProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = '';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用空的sourceBranch
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用空的targetProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = '';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用空的targetBranch
$gitlabID = 'test';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用错误的gitlabID
$gitlabID = '1';
$sourceProject = 'test';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用错误的sourceProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用错误的sourceBranch
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = 'test';
$targetBranch = 'master';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用错误的targetProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'main';
$result = $mrModel->apiGetSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
if($result === null) $result = 'null';
r($result) && p() && e('null'); //使用错误的targetBranch
+112
View File
@@ -0,0 +1,112 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
/**
title=测试 mrModel::checkSameOpened();
cid=0
pid=0
使用正确的gitlabID,sourceProject,sourceBranch,targetProject,targetBranch >> fail
使用空的gitlabID >> success
使用空的sourceProject >> success
使用空的sourceBranch >> success
使用空的targetProject >> success
使用空的targetBranch >> success
使用错误的gitlabID >> success
使用错误的sourceProject >> success
使用错误的sourceBranch >> success
使用错误的targetProject >> success
使用错误的targetBranch >> success
*/
$mrModel = $tester->loadModel('mr');
$gitlabID = '2';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('fail'); //使用正确的gitlabID, sourceProject,sourceBranch,targetProject,targetBranch
$gitlabID = '';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用空的gitlabID
$gitlabID = '1';
$sourceProject = '';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用空的sourceProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = '';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用空的sourceBranch
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用空的targetProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = '';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用空的targetBranch
$gitlabID = 'test';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用错误的gitlabID
$gitlabID = '1';
$sourceProject = 'test';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用错误的sourceProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch08';
$targetProject = '42';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用错误的sourceBranch
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = 'test';
$targetBranch = 'master';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用错误的targetProject
$gitlabID = '1';
$sourceProject = '42';
$sourceBranch = 'branch-08';
$targetProject = '42';
$targetBranch = 'main';
$result = $mrModel->checkSameOpened($gitlabID, $sourceProject, $sourceBranch, $targetProject, $targetBranch);
r($result) && p('result') && e('success'); //使用错误的targetBranch
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
/**
title=测试 mrModel::convertApiError();
cid=0
pid=0
使用正确的message >> success
使用空的message >> success
*/
$mrModel = $tester->loadModel('mr');
$message = array();
$message[0] = 'Another open merge request already exists for this source branch: !11';
$result = $mrModel->convertApiError($message);
if($result != $message[0]) $result = 'success';
r($result) && p('') && e('success'); //使用正确的message
$message = '';
$result = $mrModel->convertApiError($message);
if(empty($result)) $result = 'success';
r($result) && p('') && e('success'); //使用空的message