From 24fa9e95ba43e24ef7b4e8d7f4aaff6e3360b8d5 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Tue, 12 Dec 2023 14:07:19 +0800 Subject: [PATCH] + Add unit test case for svn methods. --- module/svn/model.php | 12 ++++-------- module/svn/test/model/getrepos.php | 4 ++-- module/svn/test/model/run.php | 4 +++- module/svn/test/svn.class.php | 13 +++++++++++++ module/svn/test/yaml/repo.yaml | 2 +- 5 files changed, 23 insertions(+), 12 deletions(-) diff --git a/module/svn/model.php b/module/svn/model.php index 4f15b9050f..531d77f3d9 100644 --- a/module/svn/model.php +++ b/module/svn/model.php @@ -241,8 +241,6 @@ class svnModel extends model public function setRepo(object $repo): bool { $this->setClient($repo); - if(empty($this->client)) return false; - $this->setRepoRoot($repo); return true; } @@ -313,13 +311,13 @@ class svnModel extends model * @access public * @return array */ - public function getRepoLogs(object $repo, int $fromRevision): array|false + public function getRepoLogs(object $repo, int $fromRevision): array { /* The svn log command. */ $scm = $this->app->loadClass('scm'); $scm->setEngine($repo); $logs = $scm->log('', $fromRevision); - if(empty($logs)) return false; + if(empty($logs)) return array(); /* Process logs. */ foreach($logs as $log) @@ -350,7 +348,6 @@ class svnModel extends model if(!$repo) return false; $this->setClient($repo); - if(empty($this->client)) return false; putenv('LC_CTYPE=en_US.UTF-8'); $oldRevision = $revision - 1; @@ -382,7 +379,6 @@ class svnModel extends model if(!$repo) return false; $this->setClient($repo); - if(empty($this->client)) return false; putenv('LC_CTYPE=en_US.UTF-8'); @@ -403,10 +399,10 @@ class svnModel extends model * Get repo by url. * * @param string $url - * @access public + * @access private * @return object|false */ - public function getRepoByURL(string $url): object|false + private function getRepoByURL(string $url): object|false { if(empty($this->repos)) $this->setRepos(); foreach($this->repos as $repo) diff --git a/module/svn/test/model/getrepos.php b/module/svn/test/model/getrepos.php index cdc586bd54..7d68cfebc9 100755 --- a/module/svn/test/model/getrepos.php +++ b/module/svn/test/model/getrepos.php @@ -8,7 +8,7 @@ timeout=0 cid=1 - 获取不到数据时,提示错误信息 @5 -- 获取第一条svn记录的name和SCM属性属性1 @http://10.0.7.237/svn/repo/unit_test1 +- 获取第一条svn记录的path属性属性1 @http://10.0.7.237/svn/repo/unit_test1 - 获取不到数据时,提示错误信息 @You must set one svn repo. */ @@ -31,4 +31,4 @@ dao::$cache = array(); ob_start(); $svn->getRepos(); $result = ob_get_clean(); -r($result) && p() && e('You must set one svn repo.'); // 获取不到数据时,提示错误信息 +r($result) && p() && e('You must set one svn repo.'); // 获取不到数据时,提示错误信息 \ No newline at end of file diff --git a/module/svn/test/model/run.php b/module/svn/test/model/run.php index 3a7a76a65c..33de5608c2 100755 --- a/module/svn/test/model/run.php +++ b/module/svn/test/model/run.php @@ -1,6 +1,8 @@ #!/usr/bin/env php run(); timeout=0 cid=1 @@ -23,4 +25,4 @@ su('admin'); $svn = new svnTest(); -r($svn->runTest()) && p('commit,comment,committer') && e('2,+ Add secondary file.,user'); // 更新svn提交信息到禅道,检查第二条记录是否正确 +r($svn->runTest()) && p('commit,comment,committer') && e('2,+ Add secondary file.,user'); // 更新svn提交信息到禅道,检查第二条记录是否正确 \ No newline at end of file diff --git a/module/svn/test/svn.class.php b/module/svn/test/svn.class.php index db586ed500..277f9dc4a5 100755 --- a/module/svn/test/svn.class.php +++ b/module/svn/test/svn.class.php @@ -22,4 +22,17 @@ class svnTest return $this->objectModel->dao->select('*')->from(TABLE_REPOHISTORY)->where('id')->eq(2)->fetch(); } + + public function getRepoLogsTest(int $version): object|bool + { + $this->objectModel->setRepos(); + ob_start(); + $repo = $this->objectModel->repos[1]; + $logs = $this->objectModel->getRepoLogs($repo, $version); + $error = ob_get_clean(); + + if($error) return $error; + return $logs[count($logs) - 1]; + + } } diff --git a/module/svn/test/yaml/repo.yaml b/module/svn/test/yaml/repo.yaml index 9eecf7cb32..9c6f2a0cbe 100644 --- a/module/svn/test/yaml/repo.yaml +++ b/module/svn/test/yaml/repo.yaml @@ -17,7 +17,7 @@ fields: - field: encoding range: "`utf-8`" - field: SCM - range: Subversion{3},Gitlba,Gitea,Gogs + range: Subversion{3},Gitlab,Gitea,Gogs - field: client range: /usr/bin/svn - field: commits