diff --git a/module/design/test/design.class.php b/module/design/test/design.class.php index 2553ae6a60..eabeb2b7a4 100644 --- a/module/design/test/design.class.php +++ b/module/design/test/design.class.php @@ -123,26 +123,28 @@ class designTest return $objects; } - public function linkCommitTest($designID, $repoID, $param = array()) + /** + * 设计关联代码提交。 + * Design link commits. + * + * @param int $designID + * @param int $repoID + * @param array $revisions + * @access public + * @return array|string + */ + public function linkCommitTest(int $designID, int $repoID, array $revisions = array()): array|string { - global $tester; + if($revisions) $this->objectModel->session->designRevisions = $this->objectModel->dao->select('*')->from(TABLE_REPOHISTORY)->where('repo')->eq($repoID)->andWhere('revision')->in($revisions)->fetchAll(); - $revision = array(); - - $createFields = array('revision' => $revision); - - foreach($createFields as $field => $defaultValue) $_POST[$field] = $defaultValue; - foreach($param as $key => $value) $_POST[$key] = $value; - - $this->objectModel->linkCommit($designID, $repoID); - - unset($_POST); + $this->objectModel->linkCommit($designID, $repoID, $revisions); if(dao::isError()) return dao::getError(); - $objects = $tester->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetchAll(); - - return $objects; + $commit = ''; + $design = $this->objectModel->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch(); + if(!empty($design->commit)) $commit = str_replace(',', ';', $design->commit); + return $commit; } public function unlinkCommitTest($designID = 0, $commitID = 0) diff --git a/module/design/test/model/linkcommit.php b/module/design/test/model/linkcommit.php new file mode 100755 index 0000000000..84d9e4dbbd --- /dev/null +++ b/module/design/test/model/linkcommit.php @@ -0,0 +1,44 @@ +#!/usr/bin/env php +linkCommit(); +cid=1 + +- 测试空数据 @0 +- 测试designID为空的情况 @0 +- 测试repoID为空的情况 @0 +- 测试提交记录为空的情况 @0 +- 测试正常情况 @1;2;3 +- 测试designID不存在的情况 @0 +- 测试repoID不存在的情况 @1;2;3 +- 测试提交记录不存在的情况 @1;2;3; +- 测试传入的参数都不存在的情况 @0 + +*/ + +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/design.class.php'; + +zdTable('file')->gen(0); +zdTable('repo')->config('repo')->gen(1); +zdTable('repohistory')->config('repohistory')->gen(3); +zdTable('design')->config('design')->gen(1); +zdTable('relation')->gen(0); + +$designs = array(0, 1, 2); +$repos = array(0, 1, 2); +$revisions[0] = array(); +$revisions[1] = array(1, 2, 3); +$revisions[2] = array(5, 6, 7, 8); + +$designTester = new designTest(); +r($designTester->linkCommitTest($designs[0], $repos[0], $revisions[0])) && p() && e('0'); // 测试空数据 +r($designTester->linkCommitTest($designs[0], $repos[1], $revisions[1])) && p() && e('0'); // 测试designID为空的情况 +r($designTester->linkCommitTest($designs[1], $repos[0], $revisions[1])) && p() && e('0'); // 测试repoID为空的情况 +r($designTester->linkCommitTest($designs[1], $repos[1], $revisions[0])) && p() && e('0'); // 测试提交记录为空的情况 +r($designTester->linkCommitTest($designs[1], $repos[1], $revisions[1])) && p() && e('1;2;3'); // 测试正常情况 +r($designTester->linkCommitTest($designs[2], $repos[1], $revisions[1])) && p() && e('0'); // 测试designID不存在的情况 +r($designTester->linkCommitTest($designs[1], $repos[2], $revisions[1])) && p() && e('1;2;3'); // 测试repoID不存在的情况 +r($designTester->linkCommitTest($designs[1], $repos[1], $revisions[2])) && p() && e('1;2;3;'); // 测试提交记录不存在的情况 +r($designTester->linkCommitTest($designs[2], $repos[2], $revisions[2])) && p() && e('0'); // 测试传入的参数都不存在的情况