80 行
3.3 KiB
PHP
80 行
3.3 KiB
PHP
<?php
|
|
// 测试跨天时间范围功能
|
|
require_once 'Application/Common/Business/Store.class.php';
|
|
|
|
use Common\Business\Store;
|
|
|
|
// 创建Store实例
|
|
$store = new Store();
|
|
|
|
// 使用反射来访问私有方法进行测试
|
|
$reflection = new ReflectionClass($store);
|
|
|
|
// 获取私有方法
|
|
$handleTimeMethod = $reflection->getMethod('handleTime');
|
|
$handleTimeMethod->setAccessible(true);
|
|
|
|
$isTimeConflictMethod = $reflection->getMethod('isTimeConflict');
|
|
$isTimeConflictMethod->setAccessible(true);
|
|
|
|
$isCrossDayMethod = $reflection->getMethod('isCrossDay');
|
|
$isCrossDayMethod->setAccessible(true);
|
|
|
|
echo "=== 跨天时间范围功能测试 ===\n\n";
|
|
|
|
// 测试1: 正常时间段(不跨天)
|
|
echo "测试1: 正常时间段\n";
|
|
$normalTime = [['08:00', '18:00']];
|
|
$result1 = $handleTimeMethod->invoke($store, $normalTime);
|
|
echo "输入: " . json_encode($normalTime) . "\n";
|
|
echo "结果: " . json_encode($result1) . "\n\n";
|
|
|
|
// 测试2: 跨天时间段
|
|
echo "测试2: 跨天时间段\n";
|
|
$crossDayTime = [['22:00', '02:00']];
|
|
$result2 = $handleTimeMethod->invoke($store, $crossDayTime);
|
|
echo "输入: " . json_encode($crossDayTime) . "\n";
|
|
echo "结果: " . json_encode($result2) . "\n\n";
|
|
|
|
// 测试3: 多个时间段,包含跨天
|
|
echo "测试3: 多个时间段(包含跨天)\n";
|
|
$multipleTime = [['08:00', '12:00'], ['22:00', '02:00']];
|
|
$result3 = $handleTimeMethod->invoke($store, $multipleTime);
|
|
echo "输入: " . json_encode($multipleTime) . "\n";
|
|
echo "结果: " . json_encode($result3) . "\n\n";
|
|
|
|
// 测试4: 冲突的时间段
|
|
echo "测试4: 冲突的时间段\n";
|
|
$conflictTime = [['08:00', '12:00'], ['10:00', '14:00']];
|
|
$result4 = $handleTimeMethod->invoke($store, $conflictTime);
|
|
echo "输入: " . json_encode($conflictTime) . "\n";
|
|
echo "结果: " . json_encode($result4) . "\n\n";
|
|
|
|
// 测试5: 跨天时间段冲突
|
|
echo "测试5: 跨天时间段冲突\n";
|
|
$crossDayConflict = [['22:00', '02:00'], ['01:00', '05:00']];
|
|
$result5 = $handleTimeMethod->invoke($store, $crossDayConflict);
|
|
echo "输入: " . json_encode($crossDayConflict) . "\n";
|
|
echo "结果: " . json_encode($result5) . "\n\n";
|
|
|
|
// 测试6: 判断是否跨天
|
|
echo "测试6: 判断是否跨天\n";
|
|
$isCrossDay1 = $isCrossDayMethod->invoke($store, '08:00', '18:00');
|
|
$isCrossDay2 = $isCrossDayMethod->invoke($store, '22:00', '02:00');
|
|
echo "08:00-18:00 是否跨天: " . ($isCrossDay1 ? 'true' : 'false') . "\n";
|
|
echo "22:00-02:00 是否跨天: " . ($isCrossDay2 ? 'true' : 'false') . "\n\n";
|
|
|
|
// 测试7: 时间冲突检测
|
|
echo "测试7: 时间冲突检测\n";
|
|
$conflict1 = $isTimeConflictMethod->invoke($store, ['08:00', '12:00'], ['10:00', '14:00']);
|
|
$conflict2 = $isTimeConflictMethod->invoke($store, ['08:00', '12:00'], ['13:00', '17:00']);
|
|
$conflict3 = $isTimeConflictMethod->invoke($store, ['22:00', '02:00'], ['01:00', '05:00']);
|
|
$conflict4 = $isTimeConflictMethod->invoke($store, ['22:00', '02:00'], ['03:00', '07:00']);
|
|
|
|
echo "08:00-12:00 与 10:00-14:00 冲突: " . ($conflict1 ? 'true' : 'false') . "\n";
|
|
echo "08:00-12:00 与 13:00-17:00 冲突: " . ($conflict2 ? 'true' : 'false') . "\n";
|
|
echo "22:00-02:00 与 01:00-05:00 冲突: " . ($conflict3 ? 'true' : 'false') . "\n";
|
|
echo "22:00-02:00 与 03:00-07:00 冲突: " . ($conflict4 ? 'true' : 'false') . "\n\n";
|
|
|
|
echo "=== 测试完成 ===\n";
|
|
?>
|