From 02ef7a5d8efec0f12fd75de134a7b59f76ccbe27 Mon Sep 17 00:00:00 2001 From: caoyanyi Date: Fri, 22 Dec 2023 10:05:55 +0800 Subject: [PATCH] + Add unit test case for gogs->apiGetSingleBranch. --- module/gogs/model.php | 8 ++-- module/gogs/test/model/apigetsinglebranch.php | 43 +++++++++++++++++++ 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100755 module/gogs/test/model/apigetsinglebranch.php diff --git a/module/gogs/model.php b/module/gogs/model.php index bef84c228f..a9688d78d8 100644 --- a/module/gogs/model.php +++ b/module/gogs/model.php @@ -278,13 +278,15 @@ class gogsModel extends model * @param string $project * @param string $branchName * @access public - * @return object + * @return object|null */ - public function apiGetSingleBranch(int $gogsID, string $project, string $branchName): object + public function apiGetSingleBranch(int $gogsID, string $project, string $branchName): object|null { + if(empty($branchName)) return null; + $url = sprintf($this->getApiRoot($gogsID), "/repos/$project/branches/$branchName"); $branch = json_decode(commonModel::http($url)); - if($branch) + if(isset($branch->name)) { $gogs = $this->fetchByID($gogsID); $branch->web_url = "{$gogs->url}/$project/src/$branchName"; diff --git a/module/gogs/test/model/apigetsinglebranch.php b/module/gogs/test/model/apigetsinglebranch.php new file mode 100755 index 0000000000..a2d6156c2b --- /dev/null +++ b/module/gogs/test/model/apigetsinglebranch.php @@ -0,0 +1,43 @@ +#!/usr/bin/env php +gen(5); +zdTable('oauth')->config('oauth')->gen(5); +su('admin'); + +global $tester; +$gogsModel = $tester->loadModel('gogs'); + +$gogsID = 1; +$project = ''; +$branch = 'test231222'; +r($gogsModel->apiGetSingleBranch($gogsID, $project, $branch)) && p() && e('0'); // 错误的服务器ID + +$gogsID = 5; +r($gogsModel->apiGetSingleBranch($gogsID, $project, $branch)) && p() && e('0'); // 错误的项目ID + +$project = 'easycorp/unittest'; +r($gogsModel->apiGetSingleBranch($gogsID, $project, $branch)) && p() && e('0'); // 错误的分支名 + +$branch = ''; +r($gogsModel->apiGetSingleBranch($gogsID, $project, $branch)) && p() && e('0'); // 空的分支名 + +$branch = 'master'; +r($gogsModel->apiGetSingleBranch($gogsID, $project, $branch)) && p('name,web_url') && e('master,https://gogsdev.qc.oop.cc/easycorp/unittest/src/master'); // 正确的参数 \ No newline at end of file