Files
EasySoft-ZenTaoPMS/module/task/test/tao/createchangesforteam.php
T
2025-09-15 15:09:46 +08:00

125 lines
4.5 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
/**
title=测试 taskTao::createChangesForTeam();
timeout=0
cid=0
- 测试步骤1:正常团队信息格式化 @团队成员: 管理员, 预计: 8, 消耗: 2, 剩余: 6\n团队成员: 用户1, 预计: 6, 消耗: 3, 剩余: 3\n
- 测试步骤2:空团队信息处理 @
- 测试步骤3:单个团队成员信息 @团队成员: 用户1, 预计: 5, 消耗: 1, 剩余: 4\n
- 测试步骤4:多个团队成员信息 @团队成员: 管理员, 预计: 8, 消耗: 2, 剩余: 6\n团队成员: 用户1, 预计: 6, 消耗: 3, 剩余: 3\n团队成员: 用户2, 预计: 4, 消耗: 1, 剩余: 3\n
- 测试步骤5:浮点数工时处理 @团队成员: 管理员, 预计: 8.5, 消耗: 2.3, 剩余: 6.2\n
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/task.unittest.class.php';
// 2. zendata数据准备(根据需要配置)
$userTable = zenData('user');
$userTable->id->range('1-10');
$userTable->account->range('admin,user1,user2,user3,user4');
$userTable->realname->range('管理员,用户1,用户2,用户3,用户4');
$userTable->deleted->range('0');
$userTable->gen(5);
// 3. 用户登录(选择合适角色)
su('admin');
// 4. 创建测试实例(变量名与模块名一致)
$taskTest = new taskTest();
// 5. 🔴 强制要求:必须包含至少5个测试步骤
// 测试1:正常团队信息格式化
$oldTask1 = new stdclass();
$oldTask1->id = 1;
$oldTask1->team = array(
(object)array('account' => 'admin', 'estimate' => 8, 'consumed' => 2, 'left' => 6),
(object)array('account' => 'user1', 'estimate' => 6, 'consumed' => 3, 'left' => 3)
);
$teamData1 = array(
'team' => array('admin', 'user2'),
'teamEstimate' => array(10, 8),
'teamConsumed' => array(4, 2),
'teamLeft' => array(6, 6)
);
$result1 = $taskTest->createChangesForTeamTest($oldTask1, new stdclass(), $teamData1);
r($result1[0]->team) && p() && e("团队成员: 管理员, 预计: 8, 消耗: 2, 剩余: 6\n团队成员: 用户1, 预计: 6, 消耗: 3, 剩余: 3\n"); // 测试步骤1:正常团队信息格式化
// 测试2:空团队信息处理
$oldTask2 = new stdclass();
$oldTask2->id = 2;
$oldTask2->team = array();
$teamData2 = array(
'team' => array(),
'teamEstimate' => array(),
'teamConsumed' => array(),
'teamLeft' => array()
);
$result2 = $taskTest->createChangesForTeamTest($oldTask2, new stdclass(), $teamData2);
r($result2[0]->team) && p() && e(''); // 测试步骤2:空团队信息处理
// 测试3:单个团队成员信息
$oldTask3 = new stdclass();
$oldTask3->id = 3;
$oldTask3->team = array(
(object)array('account' => 'user1', 'estimate' => 5, 'consumed' => 1, 'left' => 4)
);
$teamData3 = array(
'team' => array('user1'),
'teamEstimate' => array(6),
'teamConsumed' => array(2),
'teamLeft' => array(4)
);
$result3 = $taskTest->createChangesForTeamTest($oldTask3, new stdclass(), $teamData3);
r($result3[0]->team) && p() && e("团队成员: 用户1, 预计: 5, 消耗: 1, 剩余: 4\n"); // 测试步骤3:单个团队成员信息
// 测试4:多个团队成员信息
$oldTask4 = new stdclass();
$oldTask4->id = 4;
$oldTask4->team = array(
(object)array('account' => 'admin', 'estimate' => 8, 'consumed' => 2, 'left' => 6),
(object)array('account' => 'user1', 'estimate' => 6, 'consumed' => 3, 'left' => 3),
(object)array('account' => 'user2', 'estimate' => 4, 'consumed' => 1, 'left' => 3)
);
$teamData4 = array(
'team' => array('admin', 'user1', 'user2'),
'teamEstimate' => array(10, 8, 6),
'teamConsumed' => array(3, 4, 2),
'teamLeft' => array(7, 4, 4)
);
$result4 = $taskTest->createChangesForTeamTest($oldTask4, new stdclass(), $teamData4);
r($result4[0]->team) && p() && e("团队成员: 管理员, 预计: 8, 消耗: 2, 剩余: 6\n团队成员: 用户1, 预计: 6, 消耗: 3, 剩余: 3\n团队成员: 用户2, 预计: 4, 消耗: 1, 剩余: 3\n"); // 测试步骤4:多个团队成员信息
// 测试5:浮点数工时处理
$oldTask5 = new stdclass();
$oldTask5->id = 5;
$oldTask5->team = array(
(object)array('account' => 'admin', 'estimate' => 8.5, 'consumed' => 2.3, 'left' => 6.2)
);
$teamData5 = array(
'team' => array('admin'),
'teamEstimate' => array(9.5),
'teamConsumed' => array(3.7),
'teamLeft' => array(5.8)
);
$result5 = $taskTest->createChangesForTeamTest($oldTask5, new stdclass(), $teamData5);
r($result5[0]->team) && p() && e("团队成员: 管理员, 预计: 8.5, 消耗: 2.3, 剩余: 6.2\n"); // 测试步骤5:浮点数工时处理