diff --git a/module/programplan/test/zen/checklegallydate.php b/module/programplan/test/zen/checklegallydate.php new file mode 100755 index 0000000000..6890af5f75 --- /dev/null +++ b/module/programplan/test/zen/checklegallydate.php @@ -0,0 +1,76 @@ +#!/usr/bin/env php +checkLegallyDate() +timeout=0 +cid=0 + +- 不能超过项目的起止日期属性end[0] @阶段的结束时间不能大于所属项目的结束时间2025-02-01 +- 没有错误 @0 +- 不能超过父阶段起止日期属性end[0] @子阶段计划完成不能超过父阶段的计划完成时间 2025-01-15 +- 不能超过父阶段起止日期属性begin[0] @子阶段计划开始不能小于父阶段的计划开始时间 2025-01-02 +- 模板类型的项目没有错误 @0 + +*/ + +include dirname(__FILE__, 5). '/test/lib/init.php'; +su('admin'); + +$project = new stdclass(); +$project->begin = '2025-01-01'; +$project->end = '2025-02-01'; + +$plan = new stdclass(); +$plan->begin = '2025-01-01'; +$plan->end = '2025-02-02'; + +global $tester; +$zen = initReference('programplan'); +$func = $zen->getMethod('checkLegallyDate'); +$func->invokeArgs($zen->newInstance(), [$plan, $project, null, 0]); + +r(dao::getError()) && p('end[0]') && e('阶段的结束时间不能大于所属项目的结束时间2025-02-01'); // 不能超过项目的起止日期 + +dao::$errors = array(); + +$project = new stdclass(); +$project->begin = '2025-01-01'; +$project->end = '2025-02-01'; + +$plan = new stdclass(); +$plan->begin = '2025-01-01'; +$plan->end = '2025-02-01'; + +$func->invokeArgs($zen->newInstance(), [$plan, $project, null, 0]); + +r(dao::getError()) && p('') && e('0'); // 没有错误 + +dao::$errors = array(); + +$parent = new stdclass(); +$parent->begin = '2025-01-01'; +$parent->end = '2025-01-15'; + +$func->invokeArgs($zen->newInstance(), [$plan, $project, $parent, 0]); + +r(dao::getError()) && p('end[0]') && e('子阶段计划完成不能超过父阶段的计划完成时间 2025-01-15'); // 不能超过父阶段起止日期 + +dao::$errors = array(); + +$parent = new stdclass(); +$parent->begin = '2025-01-02'; +$parent->end = '2025-02-15'; + +$func->invokeArgs($zen->newInstance(), [$plan, $project, $parent, 0]); + +r(dao::getError()) && p('begin[0]') && e('子阶段计划开始不能小于父阶段的计划开始时间 2025-01-02'); // 不能超过父阶段起止日期 + +dao::$errors = array(); + +$project->isTpl = '1'; + +$func->invokeArgs($zen->newInstance(), [$plan, $project, $parent, 0]); + +r(dao::getError()) && p('') && e('0'); // 模板类型的项目没有错误 \ No newline at end of file