+ [misc] Add unit tests for repoZen::prepareCreateRepo() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-18 13:11:49 +08:00
co-authored by Claude
parent f876eab238
commit 07ac76357b
3 changed files with 232 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
#!/usr/bin/env php
<?php
/**
title=测试 repoZen::prepareCreateRepo();
timeout=0
cid=0
- 步骤1:正常情况测试属性name @test-repo
- 步骤2:验证路径设置属性path @https://gitlabdev.qc.oop.cc/test-group/test-repo
- 步骤3:服务主机为空 @0
- 步骤4:命名空间为空 @0
- 步骤5:版本库名称为空 @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
zendata('repo')->loadYaml('repo_preparecreaterepo', false, 2)->gen(5);
zendata('pipeline')->loadYaml('pipeline_preparecreaterepo', false, 2)->gen(3);
su('admin');
$repoTest = new repoTest();
$validRepo = new stdclass();
$validRepo->serviceHost = '1';
$validRepo->namespace = 'test-group';
$validRepo->name = 'test-repo';
$noServiceHostRepo = new stdclass();
$noServiceHostRepo->namespace = 'test-group';
$noServiceHostRepo->name = 'test-repo';
$noNamespaceRepo = new stdclass();
$noNamespaceRepo->serviceHost = '1';
$noNamespaceRepo->name = 'test-repo';
$noNameRepo = new stdclass();
$noNameRepo->serviceHost = '1';
$noNameRepo->namespace = 'test-group';
$invalidACLRepo = new stdclass();
$invalidACLRepo->serviceHost = '1';
$invalidACLRepo->namespace = 'test-group';
$invalidACLRepo->name = 'test-repo';
r($repoTest->prepareCreateRepoTest($validRepo)) && p('name') && e('test-repo'); // 步骤1:正常情况测试
r($repoTest->prepareCreateRepoTest($validRepo)) && p('path') && e('https://gitlabdev.qc.oop.cc/test-group/test-repo'); // 步骤2:验证路径设置
r($repoTest->prepareCreateRepoTest($noServiceHostRepo)) && p() && e('0'); // 步骤3:服务主机为空
r($repoTest->prepareCreateRepoTest($noNamespaceRepo)) && p() && e('0'); // 步骤4:命名空间为空
r($repoTest->prepareCreateRepoTest($noNameRepo)) && p() && e('0'); // 步骤5:版本库名称为空
@@ -0,0 +1,61 @@
---
title: pipeline表测试数据 - prepareCreateRepo方法
desc: 为prepareCreateRepo方法生成pipeline测试数据
author: Claude
fields:
- field: id
note: pipeline ID
range: 1-3
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: 流水线名称
range: 'GitLab Server{1-3}'
format: ""
- field: type
note: 流水线类型
range: 'gitlab'
format: ""
- field: url
note: 服务器URL
range: 'http://gitlab.example.com'
format: ""
- field: token
note: 访问令牌
range: 'glpat-test-token{1-3}'
format: ""
- field: private
note: 私有令牌
range: 'test-private-token{1-3}'
format: ""
- field: account
note: 账号
range: 'admin'
format: ""
- field: password
note: 密码
range: 'password123'
format: ""
- field: createdBy
note: 创建者
range: 'admin'
format: ""
- field: createdDate
note: 创建时间
range: '2023-01-01 10:00:00'
format: ""
- field: editedBy
note: 编辑者
range: 'admin'
format: ""
- field: editedDate
note: 编辑时间
range: '2023-01-01 11:00:00'
format: ""
- field: deleted
note: 是否删除
range: 0
format: ""
@@ -0,0 +1,117 @@
---
title: repo表测试数据 - prepareCreateRepo方法
desc: 为prepareCreateRepo方法生成repo测试数据
author: Claude
fields:
- field: id
note: repo ID
range: 1-5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: product
note: 关联产品
range: '1,2'
format: ""
- field: projects
note: 关联项目
range: '1,2'
format: ""
- field: name
note: 仓库名称
range: 'repo{1-5}'
format: ""
- field: path
note: 仓库路径
range: 'http://gitlab.example.com/group{1-3}/repo{1-5}'
format: ""
- field: prefix
note: 前缀
range: ''
format: ""
- field: encoding
note: 编码
range: 'utf-8'
format: ""
- field: SCM
note: 版本控制系统
range: 'Gitlab'
format: ""
- field: client
note: 客户端
range: ''
format: ""
- field: serviceHost
note: 服务主机ID
range: 1-3
format: ""
- field: serviceProject
note: 服务项目ID
range: 100-105
format: ""
- field: commits
note: 提交数
range: 0-100
format: ""
- field: account
note: 账号
range: 'admin,user1,user2'
format: ""
- field: password
note: 密码
range: 'password123'
format: ""
- field: encrypt
note: 加密方式
range: 'plain'
format: ""
- field: acl
note: 访问控制
range: '{"acl":"open","groups":[],"users":[]}'
format: ""
- field: synced
note: 是否同步
range: 0-1
format: ""
- field: lastSync
note: 最后同步时间
range: '[]'
format: ""
- field: lastCommit
note: 最后提交时间
range: '[]'
format: ""
- field: desc
note: 描述
range: 'Test repo description'
format: ""
- field: extra
note: 扩展字段
range: ''
format: ""
- field: preMerge
note: 预合并
range: 0
format: ""
- field: job
note: 任务ID
range: 0
format: ""
- field: fileServerUrl
note: 文件服务器URL
range: '[]'
format: ""
- field: fileServerAccount
note: 文件服务器账号
range: ''
format: ""
- field: fileServerPassword
note: 文件服务器密码
range: ''
format: ""
- field: deleted
note: 是否删除
range: 0
format: ""