* [misc] Enhance unit tests for repoTao::getLatestCommitTime() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:16:46 +08:00
co-authored by Claude
parent b4498a1f44
commit e08d5990e2
2 changed files with 57 additions and 16 deletions
@@ -42,6 +42,23 @@ class repoTest
return $result;
}
/**
* Test getLastRevision method.
*
* @param int $repoID
* @access public
* @return mixed
*/
public function getLastRevisionTest(int $repoID)
{
$method = new ReflectionMethod($this->objectTao, 'getLastRevision');
$method->setAccessible(true);
$result = $method->invoke($this->objectTao, $repoID);
if(dao::isError()) return dao::getError();
return $result;
}
public function setMenuTest(int $repoID = 0)
{
$repos = $this->objectModel->dao->select('id')->from(TABLE_REPO)->fetchPairs('id');
@@ -1851,4 +1868,23 @@ class repoTest
return $result;
}
/**
* Test getLatestCommitTime method.
*
* @param int $repoID
* @param string $revision
* @param string $branch
* @access public
* @return mixed
*/
public function getLatestCommitTimeTest(int $repoID, string $revision = 'HEAD', string $branch = '')
{
$method = new ReflectionMethod($this->objectTao, 'getLatestCommitTime');
$method->setAccessible(true);
$result = $method->invoke($this->objectTao, $repoID, $revision, $branch);
if(dao::isError()) return dao::getError();
return $result;
}
}
+21 -16
View File
@@ -1,31 +1,36 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
su('admin');
/**
title=测试 repoModel->getLatestCommitTime();
title=测试 repoTao::getLatestCommitTime();
timeout=0
cid=8
cid=0
- 获取版本库1提交时间 @2023-12-13 19:00:25
- 获取版本库3提交时间 @2023-12-18 19:00:25
- 指定revision获取版本库3提交时间 @2023-12-13 13:04:27
- 测试步骤1:正常获取版本库1的HEAD提交时间 @2023-12-13 19:00:25
- 测试步骤2:正常获取版本库3的HEAD提交时间 @2023-12-18 19:00:25
- 测试步骤3:指定特定revision获取提交时间 @2023-12-13 13:04:27
- 测试步骤4:测试不存在的分支 @0
- 测试步骤5:测试无效版本库ID的边界情况 @0
- 测试步骤6:测试不存在的revision @0
- 测试步骤7:测试版本库ID为0的边界情况 @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
zenData('repo')->loadYaml('repo')->gen(4);
zenData('repohistory')->loadYaml('repohistory')->gen(3);
$repo = $tester->loadModel('repo');
su('admin');
$gitlabID = 1;
$giteaID = 3;
$revision = 'HEAD';
$repoTest = new repoTest();
r($repo->getLatestCommitTime($gitlabID, $revision, '')) && p() && e('2023-12-13 19:00:25'); //获取版本库1提交时间
r($repo->getLatestCommitTime($giteaID, $revision, '')) && p() && e('2023-12-18 19:00:25'); //获取版本库3提交时间
$revision = '0dbb150d4904c9a9d5a804b6cdddea3cb3d856bb';
r($repo->getLatestCommitTime($giteaID, $revision, '')) && p() && e('2023-12-13 13:04:27'); //指定revision获取版本库3提交时间
r($repoTest->getLatestCommitTimeTest(1, 'HEAD', '')) && p() && e('2023-12-13 19:00:25'); // 测试步骤1:正常获取版本库1的HEAD提交时间
r($repoTest->getLatestCommitTimeTest(3, 'HEAD', '')) && p() && e('2023-12-18 19:00:25'); // 测试步骤2:正常获取版本库3的HEAD提交时间
r($repoTest->getLatestCommitTimeTest(3, '0dbb150d4904c9a9d5a804b6cdddea3cb3d856bb', '')) && p() && e('2023-12-13 13:04:27'); // 测试步骤3:指定特定revision获取提交时间
r($repoTest->getLatestCommitTimeTest(1, 'HEAD', 'develop')) && p() && e('0'); // 测试步骤4:测试不存在的分支
r($repoTest->getLatestCommitTimeTest(999, 'HEAD', '')) && p() && e('0'); // 测试步骤5:测试无效版本库ID的边界情况
r($repoTest->getLatestCommitTimeTest(1, 'nonexistent-revision', '')) && p() && e('0'); // 测试步骤6:测试不存在的revision
r($repoTest->getLatestCommitTimeTest(0, 'HEAD', '')) && p() && e('0'); // 测试步骤7:测试版本库ID为0的边界情况