znt/module/cron/test/model/parsecron.php

68 lines
2.1 KiB
PHP
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env php
<?php
/**
title=测试 cronModel::parseCron();
cid=15885
- 测试正常cron表达式解析功能获取id为2的command属性 >> 期望返回执行命令
- 测试正常cron表达式解析功能获取id为3的command属性 >> 期望返回执行命令
- 测试正常cron表达式解析功能获取id为1的command属性 >> 期望返回空值
- 测试空数组输入的边界值处理 >> 期望返回空数组
- 测试无效cron表达式的异常处理 >> 期望正确跳过无效表达式
- 测试解析结果的结构完整性验证 >> 期望包含必要字段
- 测试包含多个有效任务的解析结果 >> 期望正确解析所有有效任务
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
su('admin');
$cron = new cronModelTest();
$cron->init();
// 获取现有cron数据进行测试
$crons = $tester->cron->getCrons('nostop');
$parse = $cron->parseCronTest($crons);
// 测试步骤1验证id为2的定时任务解析结果
r($parse) && p('2:command') && e('moduleName=execution&methodName=computeburn');
// 测试步骤2验证id为3的定时任务解析结果
r($parse) && p('3:command') && e('moduleName=execution&methodName=computecfd');
// 测试步骤3验证id为1的定时任务解析结果空命令
r($parse) && p('1:command') && e('~~');
// 测试步骤4测试空数组输入
r($cron->parseCronTest(array())) && p() && e('0');
// 测试步骤5测试无效cron表达式处理
$invalidCron = array((object)array(
'id' => 999,
'm' => 'invalid',
'h' => 'invalid',
'dom' => '*',
'mon' => '*',
'dow' => '*',
'command' => 'test'
));
r($cron->parseCronTest($invalidCron)) && p() && e('0');
// 测试步骤6测试有效cron表达式的结构
$validCron = array((object)array(
'id' => 100,
'm' => '30',
'h' => '23',
'dom' => '*',
'mon' => '*',
'dow' => '*',
'command' => 'moduleName=test&methodName=valid'
));
$validResult = $cron->parseCronTest($validCron);
r($validResult) && p('100:schema') && e('30 23 * * *');
// 测试步骤7测试解析多个有效任务
r(count($parse) > 0) && p() && e('1');