#!/usr/bin/env php estStarted = '2024-01-01'; $normalTask->deadline = '2024-01-31'; r($taskZenTest->checkLegallyDateTest($normalTask, false, null, null)) && p() && e('success'); // 步骤1:正常情况 // 测试步骤2:异常日期情况 - 截止日期小于开始日期 $invalidTask = new stdClass(); $invalidTask->estStarted = '2024-01-31'; $invalidTask->deadline = '2024-01-01'; r($taskZenTest->checkLegallyDateTest($invalidTask, false, null, null)) && p('deadline') && e('"截止日期"必须大于"预计开始"'); // 步骤2:日期冲突 // 测试步骤3:子任务开始时间早于父任务(启用日期限制) $childTask = new stdClass(); $childTask->estStarted = '2024-01-01'; $childTask->deadline = '2024-01-31'; $parentTask = new stdClass(); $parentTask->estStarted = '2024-01-15'; $parentTask->deadline = '2024-02-28'; r($taskZenTest->checkLegallyDateTest($childTask, true, $parentTask, null)) && p('estStarted') && e('任务的预计开始日期小于了父任务的预计开始日期:2024-01-15'); // 步骤3:父任务开始日期冲突 // 测试步骤4:子任务截止时间晚于父任务(启用日期限制) $childTask2 = new stdClass(); $childTask2->estStarted = '2024-01-20'; $childTask2->deadline = '2024-03-01'; r($taskZenTest->checkLegallyDateTest($childTask2, true, $parentTask, null)) && p('deadline') && e('任务的截止日期大于了父任务的截止日期:2024-02-28'); // 步骤4:父任务截止日期冲突 // 测试步骤5:零日期情况 $zeroDateTask = new stdClass(); $zeroDateTask->estStarted = '0000-00-00'; $zeroDateTask->deadline = '0000-00-00'; r($taskZenTest->checkLegallyDateTest($zeroDateTask, false, null, null)) && p() && e('success'); // 步骤5:零日期处理