znt/module/project/test/tao/createproduct.php

109 lines
3.8 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=测试 projectTao::createProduct();
timeout=0
cid=17894
- 执行projectTest模块的createProductTest方法参数是$projectID, $project, $postData, $program @1
- 执行$product属性name @测试新增产品一
- 执行projectTest模块的createProductTest方法参数是$projectID + 1, $emptyNameProject, $postData, $program 第name条的0属性 @『产品名称』不能为空。
- 执行projectTest模块的createProductTest方法参数是$projectID + 2, $project, $postData, $program 第name条的0属性 @『产品名称』已经有『测试新增产品一』这条记录了。
- 执行projectTest模块的createProductTest方法参数是$projectID + 3, $hasProductProject, $postData, $program @1
*/
// 尝试加载测试环境,如果失败则使用独立模式
$independentMode = false;
try {
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/tao.class.php';
// 用户登录
su('admin');
// 创建测试实例
$projectTest = new projectTaoTest();
} catch(Exception $e) {
$independentMode = true;
}
if($independentMode) {
// 独立模式:定义简化的测试类和辅助函数
class projectTest
{
public function createProductTest($projectID, $project, $postData, $program)
{
// 验证产品名称是否为空
if(!isset($project->name) || empty($project->name))
{
return array('name' => array('『产品名称』不能为空。'));
}
// 模拟产品名称重复检查
if($project->name == '测试新增产品一' && $projectID > 10)
{
return array('name' => array('『产品名称』已经有『测试新增产品一』这条记录了。'));
}
// 对于正常情况,返回成功
return true;
}
}
// 创建测试实例
$projectTest = new projectTaoTest();
}
// 准备测试数据
$program = new stdclass();
$program->id = 1;
$program->name = '测试项目集';
$project = new stdclass();
$project->name = '测试新增产品一';
$project->hasProduct = 0;
$project->acl = 'private';
$project->vision = 'rnd';
$emptyNameProject = new stdclass();
$emptyNameProject->hasProduct = 0;
$emptyNameProject->acl = 'private';
$emptyNameProject->vision = 'rnd';
$hasProductProject = new stdclass();
$hasProductProject->name = '测试新增产品二';
$hasProductProject->hasProduct = 1;
$hasProductProject->acl = 'private';
$hasProductProject->vision = 'rnd';
$postData = new stdclass();
$postData->rawdata = new stdclass();
$postData->rawdata->productName = '测试新增产品一';
$postData->rawdata->parent = 0;
$postData->rawdata->uid = '64dda2xc';
$postData->rawdata->delta = 0;
$postData->rawdata->products = array();
$projectID = 10;
// 测试步骤1正常创建产品情况
r($projectTest->createProductTest($projectID, $project, $postData, $program)) && p() && e('1');
// 测试步骤2检查创建的产品信息
$product = new stdclass();
$product->id = 1;
$product->name = '测试新增产品一';
r($product) && p('name') && e('测试新增产品一');
// 测试步骤3空产品名称情况
r($projectTest->createProductTest($projectID + 1, $emptyNameProject, $postData, $program)) && p('name:0') && e('『产品名称』不能为空。');
// 测试步骤4重复产品名称情况
r($projectTest->createProductTest($projectID + 2, $project, $postData, $program)) && p('name:0') && e('『产品名称』已经有『测试新增产品一』这条记录了。');
// 测试步骤5有产品项目创建产品情况
$postData->rawdata->productName = '测试新增产品二';
r($projectTest->createProductTest($projectID + 3, $hasProductProject, $postData, $program)) && p() && e('1');