+ [misc] Add unit tests for taskZen::getParentEstStartedAndDeadline() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-19 11:06:10 +08:00
co-authored by Claude
parent b407148786
commit 5fdc6baa4f
2 changed files with 134 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
#!/usr/bin/env php
<?php
/**
title=测试 taskZen::getParentEstStartedAndDeadline();
timeout=0
cid=0
- 步骤1:正常情况返回数量 @2
- 步骤2:空数组返回数量 @0
- 步骤3:不存在ID返回数量 @0
- 步骤4:验证父任务1开始时间第1条的estStarted属性 @2024-01-01
- 步骤5:验证父任务4截止时间第4条的deadline属性 @2024-02-28
- 步骤6:验证多层级任务路径处理第7条的estStarted属性 @2024-03-01
- 步骤7:验证零时间处理第13条的deadline属性 @2024-04-30
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/taskzen.unittest.class.php';
// 2. 直接插入测试数据
global $tester;
$tester->dao->exec("TRUNCATE TABLE zt_task");
$tester->dao->exec("INSERT INTO zt_task (id, parent, path, project, execution, name, type, status, estStarted, deadline) VALUES
(1, 0, ',1,', 1, 1, '根任务1', 'devel', 'wait', '2024-01-01', '2024-01-31'),
(2, 1, ',1,2,', 1, 1, '子任务1-1', 'devel', 'doing', '0000-00-00', '2024-01-15'),
(3, 1, ',1,3,', 1, 1, '子任务1-2', 'devel', 'done', '2024-01-03', '0000-00-00'),
(4, 0, ',4,', 1, 1, '根任务2', 'test', 'wait', '2024-02-01', '2024-02-28'),
(5, 4, ',4,5,', 1, 1, '子任务2-1', 'test', 'doing', '0000-00-00', '2024-02-15'),
(6, 4, ',4,6,', 1, 1, '子任务2-2', 'test', 'done', '2024-02-03', '0000-00-00'),
(7, 0, ',7,', 1, 1, '根任务3', 'design', 'wait', '2024-03-01', '0000-00-00'),
(8, 7, ',7,8,', 1, 1, '子任务3-1', 'design', 'doing', '0000-00-00', '2024-03-20'),
(9, 7, ',7,9,', 1, 1, '子任务3-2', 'design', 'done', '2024-03-10', '2024-03-18'),
(10, 0, ',10,', 1, 1, '根任务4', 'study', 'wait', '0000-00-00', '2024-04-30'),
(11, 10, ',10,11,', 1, 1, '子任务4-1', 'study', 'doing', '2024-04-01', '0000-00-00'),
(12, 10, ',10,12,', 1, 1, '子任务4-2', 'study', 'done', '2024-04-03', '2024-04-20'),
(13, 0, ',13,', 2, 2, '独立任务1', 'devel', 'wait', '0000-00-00', '2024-04-30'),
(14, 0, ',14,', 2, 2, '独立任务2', 'test', 'doing', '2024-04-01', '0000-00-00'),
(15, 14, ',14,15,', 2, 2, '子任务5-1', 'test', 'done', '2024-04-05', '2024-04-15')");
// 3. 用户登录
su('admin');
// 4. 创建测试实例
$taskTest = new taskZenTest();
// 5. 强制要求:必须包含至少7个测试步骤
r(count($taskTest->getParentEstStartedAndDeadlineTest(array(1, 4)))) && p() && e('2'); // 步骤1:正常情况返回数量
r(count($taskTest->getParentEstStartedAndDeadlineTest(array()))) && p() && e('0'); // 步骤2:空数组返回数量
r(count($taskTest->getParentEstStartedAndDeadlineTest(array(999, 1000)))) && p() && e('0'); // 步骤3:不存在ID返回数量
r($taskTest->getParentEstStartedAndDeadlineTest(array(1))) && p('1:estStarted') && e('2024-01-01'); // 步骤4:验证父任务1开始时间
r($taskTest->getParentEstStartedAndDeadlineTest(array(4))) && p('4:deadline') && e('2024-02-28'); // 步骤5:验证父任务4截止时间
r($taskTest->getParentEstStartedAndDeadlineTest(array(7))) && p('7:estStarted') && e('2024-03-01'); // 步骤6:验证多层级任务路径处理
r($taskTest->getParentEstStartedAndDeadlineTest(array(13))) && p('13:deadline') && e('2024-04-30'); // 步骤7:验证零时间处理
@@ -0,0 +1,77 @@
---
title: 测试getParentEstStartedAndDeadline方法的任务数据
desc: 包含多层级任务数据,用于测试父任务开始时间和截止时间获取功能
author: AI
version: 1.0
fields:
- field: id
note: 任务ID
range: 1-20
prefix: ""
postfix: ""
loop: 0
format: ""
- field: parent
note: 父任务ID
range: 0{4},1{3},2{2},4{3},5{2},6{2},7{2},8{2}
prefix: ""
postfix: ""
loop: 0
format: ""
- field: path
note: 任务路径
range: ',1,',',1,2,',',1,2,3,',',1,3,',',4,',',4,5,',',4,5,6,',',4,6,',',7,',',7,8,',',7,8,9,',',7,9,',',10,',',10,11,',',10,11,12,',',10,12,',',13,',',13,14,',',13,14,15,',',13,15,',',16,',',17,'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: project
note: 项目ID
range: 1{10},2{10}
prefix: ""
postfix: ""
loop: 0
format: ""
- field: execution
note: 执行ID
range: 1{10},2{10}
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: 任务名称
range: '根任务1,子任务1-1,孙任务1-1-1,子任务1-2,根任务2,子任务2-1,孙任务2-1-1,子任务2-2,根任务3,子任务3-1,孙任务3-1-1,子任务3-2,根任务4,子任务4-1,孙任务4-1-1,子任务4-2,独立任务1,独立任务2,删除任务,测试任务'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: type
note: 任务类型
range: devel{8},test{6},design{4},study{2}
prefix: ""
postfix: ""
loop: 0
format: ""
- field: status
note: 任务状态
range: wait{6},doing{6},done{4},pause{2},cancel{1},closed{1}
prefix: ""
postfix: ""
loop: 0
format: ""
- field: estStarted
note: 预计开始时间
range: '2024-01-01,0000-00-00,2024-01-05,2024-01-03,2024-02-01,0000-00-00,2024-02-10,2024-02-05,2024-03-01,0000-00-00,2024-03-15,2024-03-10,0000-00-00,2024-04-01,2024-04-05,2024-04-03,2024-05-01,2024-06-01,0000-00-00,2024-07-01'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: deadline
note: 截止时间
range: '2024-01-31,2024-01-15,0000-00-00,2024-01-25,2024-02-28,2024-02-20,0000-00-00,2024-02-25,0000-00-00,2024-03-20,2024-03-25,2024-03-18,2024-04-30,0000-00-00,2024-04-15,2024-04-20,2024-05-31,2024-06-30,2024-07-15,0000-00-00'
prefix: ""
postfix: ""
loop: 0
format: ""