* Refactor design::update unit test.
This commit is contained in:
@@ -68,33 +68,31 @@ class designTest
|
||||
}
|
||||
|
||||
/**
|
||||
* Function update test by desgin
|
||||
* 编辑一个设计。
|
||||
* Update a design.
|
||||
*
|
||||
* @param int $designID
|
||||
* @param array $param
|
||||
* @param int $designID
|
||||
* @param array $data
|
||||
* @access public
|
||||
* @return array
|
||||
* @return array|bool
|
||||
*/
|
||||
public function updateTest($designID, $param = array())
|
||||
public function updateTest(int $designID, array $data = array()): array|bool
|
||||
{
|
||||
global $tester;
|
||||
$oldDesign = $this->objectModel->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch();
|
||||
$fields = array('product', 'name', 'story', 'desc', 'type');
|
||||
|
||||
$labels = array();
|
||||
$files = array();
|
||||
$design = new stdClass();
|
||||
$design->editedBy = $this->objectModel->app->user->account;
|
||||
$design->editedDate = helper::now();
|
||||
if($oldDesign)
|
||||
{
|
||||
foreach($fields as $field) $design->{$field} = isset($data[$field]) ? $data[$field] : $oldDesign->{$field};
|
||||
}
|
||||
|
||||
$createFields = $tester->dao->select('`product`,`story`,`type`,`name`,`desc`')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetchAll();
|
||||
$createFields[0]->labels = $labels;
|
||||
$createFields[0]->files = $files;
|
||||
foreach($createFields[0] as $field => $defaultValue) $_POST[$field] = $defaultValue;
|
||||
foreach($param as $key => $value) $_POST[$key] = $value;
|
||||
|
||||
$objects = $this->objectModel->update($designID);
|
||||
|
||||
unset($_POST);
|
||||
$changes = $this->objectModel->update($designID, $design);
|
||||
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $objects;
|
||||
return $changes;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,41 +1,65 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/design.class.php';
|
||||
su('admin');
|
||||
|
||||
/**
|
||||
|
||||
title=测试 designModel->update();
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
修改设计类型 >> type,HLDS,DDS
|
||||
修改设计需求 >> story,0,17
|
||||
修改设计产品 >> product,31,21
|
||||
修改设计名称 >> name,这是一个设计1,修改设计
|
||||
修改设计详情 >> desc,这是设计描述1,详情修改
|
||||
设计名称不能为空 >> 『设计名称』不能为空。
|
||||
设计类型不能为空 >> 『设计类型』不能为空。
|
||||
- 修改设计的所属产品
|
||||
- 第0条的field属性 @product
|
||||
- 第0条的old属性 @0
|
||||
- 第0条的new属性 @1
|
||||
- 修改设计的名称
|
||||
- 第0条的field属性 @name
|
||||
- 第0条的old属性 @设计2
|
||||
- 第0条的new属性 @修改后的名字
|
||||
- 修改设计的类型
|
||||
- 第0条的field属性 @type
|
||||
- 第0条的old属性 @DBDS
|
||||
- 第0条的new属性 @HLDS
|
||||
- 修改设计的所属故事
|
||||
- 第0条的field属性 @story
|
||||
- 第0条的old属性 @~~
|
||||
- 第0条的new属性 @1
|
||||
- 修改设计的描述
|
||||
- 第0条的field属性 @desc
|
||||
- 第0条的old属性 @这是设计描述5
|
||||
- 第0条的new属性 @修改后的描述
|
||||
- 测试ID为空 @0
|
||||
- 测试ID不存在 @0
|
||||
- 测试名称为空第name条的0属性 @『设计名称』不能为空。
|
||||
- 测试类型为空第type条的0属性 @『设计类型』不能为空。
|
||||
|
||||
*/
|
||||
$designIDList = array('1', '2', '3');
|
||||
|
||||
$updateType = array('type' => 'DDS');
|
||||
$updateStory = array('story' => '17');
|
||||
$updateProduct = array('product' => '21');
|
||||
$updateName = array('name' => '修改设计');
|
||||
$updateDesc = array('desc' => '详情修改');
|
||||
$noName = array('name' => '');
|
||||
$noType = array('type' => '');
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/design.class.php';
|
||||
|
||||
$design = new designTest();
|
||||
zdTable('design')->config('design')->gen(5);
|
||||
zdTable('designspec')->config('designspec')->gen(5);
|
||||
zdTable('user')->gen(5);
|
||||
|
||||
r($design->updateTest($designIDList[0],$updateType)) && p('0:field,old,new') && e('type,HLDS,DDS'); //修改设计类型
|
||||
r($design->updateTest($designIDList[1],$updateStory)) && p('0:field,old,new') && e('story,0,17'); //修改设计需求
|
||||
r($design->updateTest($designIDList[2],$updateProduct)) && p('0:field,old,new') && e('product,31,21'); //修改设计产品
|
||||
r($design->updateTest($designIDList[0],$updateName)) && p('0:field,old,new') && e('name,这是一个设计1,修改设计');//修改设计名称
|
||||
r($design->updateTest($designIDList[0],$updateDesc)) && p('0:field,old,new') && e('desc,这是设计描述1,详情修改');//修改设计详情
|
||||
r($design->updateTest($designIDList[0],$noName)) && p('name:0') && e('『设计名称』不能为空。'); //设计名称不能为空
|
||||
r($design->updateTest($designIDList[0],$noType)) && p('type:0') && e('『设计类型』不能为空。'); //设计类型不能为空
|
||||
$idList = array(1, 2, 3, 4, 5, 0, 6);
|
||||
|
||||
$changeProduct = array('product' => 1);
|
||||
$changeName = array('name' => '修改后的名字');
|
||||
$changeType = array('type' => 'HLDS');
|
||||
$changeStory = array('story' => 1);
|
||||
$changeDesc = array('desc' => '修改后的描述');
|
||||
$emptyName = array('name' => '');
|
||||
$emptyType = array('type' => '');
|
||||
|
||||
$designTester = new designTest();
|
||||
|
||||
/* Normal condition. */
|
||||
r($designTester->updateTest($idList[0], $changeProduct)) && p('0:field,old,new') && e('product,0,1'); // 修改设计的所属产品
|
||||
r($designTester->updateTest($idList[1], $changeName)) && p('0:field,old,new') && e('name,设计2,修改后的名字'); // 修改设计的名称
|
||||
r($designTester->updateTest($idList[2], $changeType)) && p('0:field,old,new') && e('type,DBDS,HLDS'); // 修改设计的类型
|
||||
r($designTester->updateTest($idList[3], $changeStory)) && p('0:field,old,new') && e('story,~~,1'); // 修改设计的所属故事
|
||||
r($designTester->updateTest($idList[4], $changeDesc)) && p('0:field,old,new') && e('desc,这是设计描述5,修改后的描述'); // 修改设计的描述
|
||||
|
||||
/* Error condition. */
|
||||
r($designTester->updateTest($idList[5], $changeProduct)) && p() && e('0'); // 测试ID为空
|
||||
r($designTester->updateTest($idList[6], $changeName)) && p() && e('0'); // 测试ID不存在
|
||||
r($designTester->updateTest($idList[0], $emptyName)) && p('name:0') && e('『设计名称』不能为空。'); // 测试名称为空
|
||||
r($designTester->updateTest($idList[0], $emptyType)) && p('type:0') && e('『设计类型』不能为空。'); // 测试类型为空
|
||||
|
||||
Reference in New Issue
Block a user