From b40464b7c584cc6d02a66951376201b98a397e2a Mon Sep 17 00:00:00 2001 From: liugang Date: Wed, 17 Sep 2025 07:17:59 +0800 Subject: [PATCH] + [misc] Add unit tests for repoZen::syncLocalCommit() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/repo/test/zen/synclocalcommit.php | 53 ++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100755 module/repo/test/zen/synclocalcommit.php diff --git a/module/repo/test/zen/synclocalcommit.php b/module/repo/test/zen/synclocalcommit.php new file mode 100755 index 0000000000..9f146b1c14 --- /dev/null +++ b/module/repo/test/zen/synclocalcommit.php @@ -0,0 +1,53 @@ +#!/usr/bin/env php +SCM = 'Git'; +$validRepo->name = 'test-repo'; +$validRepo->id = 1; + +// 创建空对象 +$emptyRepo = new stdclass(); + +// 创建缺少属性的repo对象 +$incompleteRepo = new stdclass(); +$incompleteRepo->SCM = 'Git'; + +// 创建具有无效名称的repo对象 +$invalidNameRepo = new stdclass(); +$invalidNameRepo->SCM = 'Git'; +$invalidNameRepo->name = ''; + +// 创建另一个测试对象用于第五个测试 +$testRepo = new stdclass(); +$testRepo->SCM = 'Subversion'; +$testRepo->name = 'svn-test-repo'; +$testRepo->id = 2; + +r($repoZenTest->syncLocalCommitTest($validRepo)) && p() && e('0'); // 步骤1:传入有效的repo对象但不存在日志文件 +r($repoZenTest->syncLocalCommitTest(null)) && p() && e('0'); // 步骤2:传入空对象或null参数 +r($repoZenTest->syncLocalCommitTest($incompleteRepo)) && p() && e('0'); // 步骤3:传入缺少必要属性的repo对象 +r($repoZenTest->syncLocalCommitTest($invalidNameRepo)) && p() && e('0'); // 步骤4:传入有效repo对象但getTmpRoot返回无效路径 +r($repoZenTest->syncLocalCommitTest($testRepo)) && p() && e('0'); // 步骤5:测试方法在DAO错误情况下的处理 \ No newline at end of file