From 4f4e950dc90a6950228056c00200ba49143e97a7 Mon Sep 17 00:00:00 2001 From: tianshujie Date: Thu, 14 Dec 2023 16:47:03 +0800 Subject: [PATCH] * Refactor design::update unit test. --- module/design/test/design.class.php | 36 ++++++------- module/design/test/model/update.php | 80 +++++++++++++++++++---------- 2 files changed, 69 insertions(+), 47 deletions(-) diff --git a/module/design/test/design.class.php b/module/design/test/design.class.php index 254ecaf6c9..4164ff2757 100644 --- a/module/design/test/design.class.php +++ b/module/design/test/design.class.php @@ -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; } /** diff --git a/module/design/test/model/update.php b/module/design/test/model/update.php index dad03b34eb..f2e1f890f1 100755 --- a/module/design/test/model/update.php +++ b/module/design/test/model/update.php @@ -1,41 +1,65 @@ #!/usr/bin/env php 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('『设计类型』不能为空。'); // 测试类型为空