znt/module/mail/test/model/getqueue.php

64 lines
4.5 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=测试 mailModel::getQueue();
timeout=0
cid=17009
- 步骤1测试获取所有状态邮件队列数量按收件人分组 @5
- 步骤2测试获取失败状态的邮件队列数量 @5
- 步骤3测试获取待发送状态的邮件队列数量 @4
- 步骤4测试不合并邮件时的队列数量 @9
- 步骤5测试按id_desc排序的第一条邮件subject第0条的subject属性 @主题4
- 步骤6测试按id_desc排序的第一条邮件data第0条的data属性 @用户创建了任务4
- 步骤7测试空状态参数获取邮件队列 @5
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 2. 清理并准备测试数据直接使用global $tester来避免依赖问题
global $tester;
if($tester && $tester->dao) {
try {
// 清理旧数据
$tester->dao->delete()->from(TABLE_NOTIFY)->where('objectType')->eq('mail')->exec();
// 直接插入测试数据
$testData = array(
array('objectType' => 'mail', 'objectID' => 1, 'action' => 1, 'toList' => 'user1', 'ccList' => '', 'subject' => '主题1', 'data' => '用户创建了任务1', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'wait'),
array('objectType' => 'mail', 'objectID' => 2, 'action' => 2, 'toList' => 'user2', 'ccList' => '', 'subject' => '主题2', 'data' => '用户创建了任务2', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'wait'),
array('objectType' => 'mail', 'objectID' => 3, 'action' => 3, 'toList' => 'user3', 'ccList' => '', 'subject' => '主题3', 'data' => '用户创建了任务3', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'wait'),
array('objectType' => 'mail', 'objectID' => 4, 'action' => 4, 'toList' => 'user4', 'ccList' => '', 'subject' => '主题4', 'data' => '用户创建了任务4', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'wait'),
array('objectType' => 'mail', 'objectID' => 5, 'action' => 5, 'toList' => 'user1', 'ccList' => '', 'subject' => '主题5', 'data' => '用户创建了任务5', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'fail'),
array('objectType' => 'mail', 'objectID' => 6, 'action' => 6, 'toList' => 'user2', 'ccList' => '', 'subject' => '主题6', 'data' => '用户创建了任务6', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'fail'),
array('objectType' => 'mail', 'objectID' => 7, 'action' => 7, 'toList' => 'user3', 'ccList' => '', 'subject' => '主题7', 'data' => '用户创建了任务7', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'fail'),
array('objectType' => 'mail', 'objectID' => 8, 'action' => 8, 'toList' => 'user4', 'ccList' => '', 'subject' => '主题8', 'data' => '用户创建了任务8', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'fail'),
array('objectType' => 'mail', 'objectID' => 9, 'action' => 9, 'toList' => 'user5', 'ccList' => '', 'subject' => '主题9', 'data' => '用户创建了任务9', 'createdBy' => 'admin', 'createdDate' => '2024-01-01 10:00:00', 'status' => 'fail')
);
foreach($testData as $data) {
$tester->dao->insert(TABLE_NOTIFY)->data($data)->exec();
}
} catch (Exception $e) {
// 如果数据库操作失败,继续测试
}
}
// 3. 用户登录
su('admin');
// 4. 创建测试实例
$mailTest = new mailModelTest();
r(count($mailTest->getQueueTest('all'))) && p() && e('5'); // 步骤1测试获取所有状态邮件队列数量按收件人分组
r(count($mailTest->getQueueTest('fail'))) && p() && e('5'); // 步骤2测试获取失败状态的邮件队列数量
r(count($mailTest->getQueueTest('wait'))) && p() && e('4'); // 步骤3测试获取待发送状态的邮件队列数量
r(count($mailTest->getQueueTest('all', 'id_desc', null, false))) && p() && e('9'); // 步骤4测试不合并邮件时的队列数量
r($mailTest->getQueueTest('wait')) && p('0:subject') && e('主题4'); // 步骤5测试按id_desc排序的第一条邮件subject
r($mailTest->getQueueTest('wait')) && p('0:data') && e('用户创建了任务4'); // 步骤6测试按id_desc排序的第一条邮件data
r(count($mailTest->getQueueTest(''))) && p() && e('5'); // 步骤7测试空状态参数获取邮件队列