From f9f664013423db987fdfd7e1291301a2bdbf3ad0 Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 8 Sep 2025 18:21:20 +0800 Subject: [PATCH] + [misc] Add unit tests for instanceModel::deleteBackupCron() 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 --- .../test/lib/instance.unittest.class.php | 15 ++++ .../instance/test/model/deletebackupcron.php | 48 ++++++++++++ .../model/yaml/cron_deletebackupcron.yaml | 54 ++++++++++++++ .../model/yaml/instance_deletebackupcron.yaml | 74 +++++++++++++++++++ 4 files changed, 191 insertions(+) create mode 100755 module/instance/test/model/deletebackupcron.php create mode 100644 module/instance/test/model/yaml/cron_deletebackupcron.yaml create mode 100644 module/instance/test/model/yaml/instance_deletebackupcron.yaml diff --git a/module/instance/test/lib/instance.unittest.class.php b/module/instance/test/lib/instance.unittest.class.php index 91870fcd95..39a07dd50a 100644 --- a/module/instance/test/lib/instance.unittest.class.php +++ b/module/instance/test/lib/instance.unittest.class.php @@ -498,4 +498,19 @@ class instanceTest return $result; } + + /** + * Test deleteBackupCron method. + * + * @param object $instance + * @access public + * @return bool + */ + public function deleteBackupCronTest(object $instance): bool + { + $result = $this->objectModel->deleteBackupCron($instance); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/instance/test/model/deletebackupcron.php b/module/instance/test/model/deletebackupcron.php new file mode 100755 index 0000000000..bef0193738 --- /dev/null +++ b/module/instance/test/model/deletebackupcron.php @@ -0,0 +1,48 @@ +#!/usr/bin/env php +loadYaml('cron_deletebackupcron', false, 2)->gen(10); +zendata('instance')->loadYaml('instance_deletebackupcron', false, 2)->gen(5); + +su('admin'); + +$instanceTest = new instanceTest(); + +// 创建测试用的instance对象 +$instance1 = new stdClass(); +$instance1->id = 1; + +$instance2 = new stdClass(); +$instance2->id = 999; + +$instance3 = new stdClass(); +$instance3->id = 0; + +$instance4 = new stdClass(); +$instance4->id = -1; + +$instance5 = new stdClass(); +$instance5->id = ''; + +r($instanceTest->deleteBackupCronTest($instance1)) && p() && e(1); // 步骤1:正常情况 +r($instanceTest->deleteBackupCronTest($instance2)) && p() && e(1); // 步骤2:不存在的ID +r($instanceTest->deleteBackupCronTest($instance3)) && p() && e(1); // 步骤3:边界值0 +r($instanceTest->deleteBackupCronTest($instance4)) && p() && e(1); // 步骤4:负数ID +r($instanceTest->deleteBackupCronTest($instance5)) && p() && e(1); // 步骤5:空ID \ No newline at end of file diff --git a/module/instance/test/model/yaml/cron_deletebackupcron.yaml b/module/instance/test/model/yaml/cron_deletebackupcron.yaml new file mode 100644 index 0000000000..cdb84af68a --- /dev/null +++ b/module/instance/test/model/yaml/cron_deletebackupcron.yaml @@ -0,0 +1,54 @@ +--- +title: 定时任务表测试数据 - deleteBackupCron方法 +desc: 用于测试删除定时备份任务的数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 任务ID + range: 1-10 + +- field: m + note: 分钟 + range: '30' + +- field: h + note: 小时 + range: '1' + +- field: dom + note: 月中天数 + range: '*' + +- field: mon + note: 月份 + range: '*' + +- field: dow + note: 周中天数 + range: '*' + +- field: command + note: 定时任务命令 + range: 'moduleName=instance&methodName=cronBackup&instanceID=1{3}, moduleName=instance&methodName=cronBackup&instanceID=2{2}, moduleName=other&methodName=test&instanceID=3{5}' + +- field: remark + note: 备注信息 + range: '实例备份任务{10}' + +- field: type + note: 任务类型 + range: 'zentao{10}' + +- field: buildin + note: 内建任务标识 + range: 0{10} + +- field: status + note: 任务状态 + range: 'normal{8}, stop{2}' + +- field: lastTime + note: 最后执行时间 + range: '2023-01-01 00:00:00{10}' \ No newline at end of file diff --git a/module/instance/test/model/yaml/instance_deletebackupcron.yaml b/module/instance/test/model/yaml/instance_deletebackupcron.yaml new file mode 100644 index 0000000000..08955910f8 --- /dev/null +++ b/module/instance/test/model/yaml/instance_deletebackupcron.yaml @@ -0,0 +1,74 @@ +--- +title: 实例表测试数据 - deleteBackupCron方法 +desc: 用于测试删除定时备份任务的实例数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 实例ID + range: 1-5 + +- field: name + note: 实例名称 + range: 'test-instance{5}' + format: "%s%d" + +- field: space + note: 空间ID + range: 1{5} + +- field: k8name + note: K8S名称 + range: 'zentao{5}' + format: "%s%d" + +- field: domain + note: 域名 + range: 'test{5}' + postfix: '.local.com' + +- field: appType + note: 应用类型 + range: 'zentao{3}, jenkins{1}, gitlab{1}' + +- field: appVersion + note: 应用版本 + range: '18.0{5}' + +- field: status + note: 实例状态 + range: 'running{3}, stopped{1}, creating{1}' + +- field: dbName + note: 数据库名称 + range: 'zentao{5}' + format: "%s%d" + +- field: dbUser + note: 数据库用户 + range: 'root{5}' + +- field: dbPassword + note: 数据库密码 + range: '123456{5}' + +- field: createdBy + note: 创建者 + range: 'admin{5}' + +- field: createdDate + note: 创建时间 + range: '2023-01-01 10:00:00{5}' + +- field: editedBy + note: 编辑者 + range: 'admin{5}' + +- field: editedDate + note: 编辑时间 + range: '2023-01-02 10:00:00{5}' + +- field: deleted + note: 删除标记 + range: 0{5} \ No newline at end of file