znt/module/story/test/model/getbysql.php

59 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=测试 storyModel::getBySQL();
timeout=0
cid=18510
- 执行storyTest模块的getBySQLTest方法参数是1, "1 = 1 AND `status` = 'active'", 'id_desc' @2
- 执行storyTest模块的getBySQLTest方法参数是'all', "1 = 1 AND `type` = 'story'", 'id_asc' @15
- 执行storyTest模块的getBySQLTest方法参数是2, "1 = 1", 'id' @3
- 执行storyTest模块的getBySQLTest方法参数是'all', "1 = 1", 'id', null, 'requirement' @5
- 执行storyTest模块的getBySQLTest方法参数是'all', "1 = 1 AND `status` = 'draft'", 'id' @4
- 执行storyTest模块的getBySQLTest方法参数是3, "1 = 1", 'id' @3
- 执行storyTest模块的getBySQLTest方法参数是999, "1 = 1", 'id' @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/model.class.php';
// 准备测试数据
zenData('product')->gen(5);
zenData('productplan')->gen(10);
$story = zenData('story');
$story->id->range('1-20');
$story->product->range('1-5');
$story->type->range('story{15},requirement{5}');
$story->status->range('active{8},draft{4},reviewing{3},changing{2},closed{3}');
$story->vision->range('rnd');
$story->version->range('1');
$story->gen(20);
su('admin');
$storyTest = new storyModelTest();
// 测试步骤1正常查询指定产品的活跃需求
r($storyTest->getBySQLTest(1, "1 = 1 AND `status` = 'active'", 'id_desc')) && p() && e('2');
// 测试步骤2查询所有产品的需求
r($storyTest->getBySQLTest('all', "1 = 1 AND `type` = 'story'", 'id_asc')) && p() && e('15');
// 测试步骤3测试空SQL条件查询
r($storyTest->getBySQLTest(2, "1 = 1", 'id')) && p() && e('3');
// 测试步骤4测试不同类型过滤(requirement类型)
r($storyTest->getBySQLTest('all', "1 = 1", 'id', null, 'requirement')) && p() && e('5');
// 测试步骤5测试特定状态过滤
r($storyTest->getBySQLTest('all', "1 = 1 AND `status` = 'draft'", 'id')) && p() && e('4');
// 测试步骤6测试单个产品的需求数量
r($storyTest->getBySQLTest(3, "1 = 1", 'id')) && p() && e('3');
// 测试步骤7测试无效产品ID
r($storyTest->getBySQLTest(999, "1 = 1", 'id')) && p() && e('0');