znt/module/project/test/zen/prepareproject.php

158 lines
4.6 KiB
PHP
Executable file

#!/usr/bin/env php
<?php
/**
title=测试 projectZen::prepareProject();
timeout=0
cid=17952
- 步骤1属性team @Test Project 1
- 步骤2属性team @Test Project 2
- 步骤3
- 属性end @2059-12-31
- 属性days @0
- 步骤4属性budget @0
- 步骤5属性products[0] @最少关联一个产品
- 步骤6属性days @可用工作日不能超过『10』天
- 步骤7属性budget @1234.57
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/zen.class.php';
zenData('project')->gen(5);
zenData('product')->gen(5);
zenData('branch')->gen(5);
su('admin');
global $tester, $app;
$app->rawModule = 'project';
$app->rawMethod = 'edit';
$projectTest = new projectZenTest();
// 步骤1:正常情况-有产品的项目
$_POST = array();
$_POST['name'] = 'Test Project 1';
$_POST['begin'] = '2024-01-01';
$_POST['end'] = '2024-12-31';
$_POST['days'] = 200;
$_POST['parent'] = 1;
$_POST['products'] = array(1);
$_POST['branch'] = array(array(0));
$_POST['longTime'] = false;
$_POST['delta'] = '100';
$_POST['future'] = false;
$_POST['budget'] = 1000;
$_POST['whitelist'] = array();
$_POST['auth'] = array();
$_POST['storyType'] = array();
$formData1 = form::data($tester->config->project->form->edit);
r($projectTest->prepareProjectTest($formData1, 1)) && p('team') && e('Test Project 1'); // 步骤1
// 步骤2:无产品的项目
$_POST = array();
$_POST['name'] = 'Test Project 2';
$_POST['begin'] = '2024-01-01';
$_POST['end'] = '2024-06-30';
$_POST['days'] = 100;
$_POST['parent'] = 1;
$_POST['longTime'] = false;
$_POST['delta'] = '50';
$_POST['future'] = false;
$_POST['budget'] = 500;
$_POST['whitelist'] = array();
$_POST['auth'] = array();
$_POST['storyType'] = array();
$formData2 = form::data($tester->config->project->form->edit);
r($projectTest->prepareProjectTest($formData2, 0)) && p('team') && e('Test Project 2'); // 步骤2
// 步骤3:长期项目
$_POST = array();
$_POST['name'] = 'Test Project 3';
$_POST['begin'] = '2024-01-01';
$_POST['end'] = '2024-12-31';
$_POST['days'] = 200;
$_POST['parent'] = 1;
$_POST['longTime'] = true;
$_POST['delta'] = '999';
$_POST['future'] = false;
$_POST['budget'] = 0;
$_POST['whitelist'] = array();
$_POST['auth'] = array();
$_POST['storyType'] = array();
$formData3 = form::data($tester->config->project->form->edit);
r($projectTest->prepareProjectTest($formData3, 0)) && p('end,days') && e('2059-12-31,0'); // 步骤3
// 步骤4:预算为0时保持0
$_POST = array();
$_POST['name'] = 'Test Project 4';
$_POST['begin'] = '2025-01-01';
$_POST['end'] = '2025-12-31';
$_POST['days'] = 200;
$_POST['parent'] = 1;
$_POST['longTime'] = false;
$_POST['delta'] = '100';
$_POST['future'] = false;
$_POST['budget'] = 0;
$_POST['whitelist'] = array();
$_POST['auth'] = array();
$_POST['storyType'] = array();
$formData4 = form::data($tester->config->project->form->edit);
r($projectTest->prepareProjectTest($formData4, 0)) && p('budget') && e('0'); // 步骤4
// 步骤5:产品为空时返回错误
$_POST = array();
$_POST['name'] = 'Test Project 5';
$_POST['begin'] = '2024-01-01';
$_POST['end'] = '2024-12-31';
$_POST['days'] = 200;
$_POST['parent'] = 1;
$_POST['longTime'] = false;
$_POST['delta'] = '100';
$_POST['future'] = false;
$_POST['budget'] = 0;
$_POST['products'] = array();
$_POST['branch'] = array();
$_POST['whitelist'] = array();
$_POST['auth'] = array();
$_POST['storyType'] = array();
$formData5 = form::data($tester->config->project->form->edit);
r($projectTest->prepareProjectTest($formData5, 1)) && p('products[0]') && e('最少关联一个产品'); // 步骤5
// 步骤6:工作日超出范围
$_POST = array();
$_POST['name'] = 'Test Project 6';
$_POST['begin'] = '2024-01-01';
$_POST['end'] = '2024-01-10';
$_POST['days'] = 50;
$_POST['parent'] = 1;
$_POST['longTime'] = false;
$_POST['delta'] = '50';
$_POST['future'] = false;
$_POST['budget'] = 0;
$_POST['whitelist'] = array();
$_POST['auth'] = array();
$_POST['storyType'] = array();
$formData6 = form::data($tester->config->project->form->edit);
r($projectTest->prepareProjectTest($formData6, 0)) && p('days') && e('可用工作日不能超过『10』天'); // 步骤6
// 步骤7:预算四舍五入
$_POST = array();
$_POST['name'] = 'Test Project 7';
$_POST['begin'] = '2024-01-01';
$_POST['end'] = '2024-12-31';
$_POST['days'] = 200;
$_POST['parent'] = 1;
$_POST['longTime'] = false;
$_POST['delta'] = '100';
$_POST['future'] = false;
$_POST['budget'] = 1234.567;
$_POST['whitelist'] = array();
$_POST['auth'] = array();
$_POST['storyType'] = array();
$formData7 = form::data($tester->config->project->form->edit);
r($projectTest->prepareProjectTest($formData7, 0)) && p('budget') && e('1234.57'); // 步骤7