* Refactor close method and case.

This commit is contained in:
tianshujie
2023-09-14 10:47:06 +08:00
parent 43e5fb0a46
commit 84d2cd73ce
6 changed files with 82 additions and 22 deletions
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/program.class.php';
zdTable('user')->gen(5);
su('admin');
$program = zdTable('project')->config('program');
$program->realBegan->range('`2023-09-11`');
$program->gen(10);
/**
title=测试 programModel::close();
timeout=0
cid=1
*/
$programID = 1;
$maxDate = array('realEnd' => date('Y-m-d', strtotime('+1 day')));
$minDate = array('realEnd' => '2023-09-10');
$normalDate = array('realEnd' => '2023-09-12');
$programTester = new programTest();
r($programTester->closeTest($programID, $maxDate)) && p('realEnd:0') && e('~f:『实际完成日期』应当不大于~'); // 测试实际完成时间大于今日的情况
r($programTester->closeTest($programID, $minDate)) && p('realEnd:0') && e('『实际完成日期』应当不小于『2023-09-11』。'); // 测试实际完成时间小于实际开始时间的情况
r($programTester->closeTest($programID, $normalDate)) && p('0:field,old,new') && e('status,doing,close'); // 测试关闭一个项目集
+28
View File
@@ -468,4 +468,32 @@ class programTest
return $this->program->getProgramIDByObject($objectID, $object, $objects);
}
/**
* 关闭一个项目集。
* Close a program.
*
* @param int $programID
* @param array $postData
* @access public
* @return array
*/
public function closeTest(int $programID, array $postData): array
{
$now = helper::now();
$oldProgram = $this->program->getByID($programID);
$program = new stdclass();
$program->status = 'close';
$program->closedDate = $now;
$program->closedBy = 'admin';
$program->lastEditedDate = $now;
$program->lastEditedBy = 'admin';
foreach($postData as $field => $value) $program->{$field} = $value;
$changes = $this->program->close($program, $oldProgram);
if(dao::isError()) return dao::getError();
return $changes;
}
}