From 899e69aa3fa443d36696196de9f462db77cc7be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=94=E4=BB=A4=E8=8C=82?= Date: Thu, 27 Apr 2023 16:51:01 +0800 Subject: [PATCH] * Optimize update unit test for block. --- module/block/model.php | 4 +- module/block/test/block.class.php | 16 +++++++ module/block/test/model/create.php | 2 +- module/block/test/model/update.php | 74 ++++++++++++++++++++++++++++++ 4 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 module/block/test/model/update.php diff --git a/module/block/model.php b/module/block/model.php index 7469e8b7d9..6107b8ce87 100644 --- a/module/block/model.php +++ b/module/block/model.php @@ -338,12 +338,12 @@ class blockModel extends model */ public function update(object $formData): int|false { - $this->dao->update(TABLE_BLOCK)->data($formData)->exec(); + $this->dao->update(TABLE_BLOCK)->data($formData)->autoCheck()->exec(); if(dao::isError()) return false; $this->loadModel('score')->create('block', 'set'); - return $formData->id; + return (int)$formData->id; } /** diff --git a/module/block/test/block.class.php b/module/block/test/block.class.php index b942930ba1..95e75f2085 100644 --- a/module/block/test/block.class.php +++ b/module/block/test/block.class.php @@ -23,6 +23,22 @@ class blockTest return $blockID; } + /** + * Update a block. + * + * @param object $block + * @access public + * @return int|false + */ + public function updateTest($block) + { + $blockID = $this->objectModel->update($block); + + if(dao::isError()) return dao::getError(); + + return $blockID; + } + /** * Test save params. * diff --git a/module/block/test/model/create.php b/module/block/test/model/create.php index 6245dd8a48..1869754e7f 100644 --- a/module/block/test/model/create.php +++ b/module/block/test/model/create.php @@ -68,4 +68,4 @@ $blockTest = new blockTest(); $newBlockID = $blockTest->createTest($block); r($tester->block->getByID($newBlockID)) && p('account,vision,module,title,source,block,order') && e('admin,rnd,my,区块123,my,bug,5'); // 测试获取正常的block的内容 -r($blockTest->createTest($accoutTooLangBlock)) && p('account:0') && e('『所属用户』长度应当不超过『30』,且大于『0』。'); // 测试account 字段字符超出长度 \ No newline at end of file +r($blockTest->createTest($accoutTooLangBlock)) && p('account:0') && e('『所属用户』长度应当不超过『30』,且大于『0』。'); // 测试account 字段字符超出长度 diff --git a/module/block/test/model/update.php b/module/block/test/model/update.php new file mode 100644 index 0000000000..f597c6b269 --- /dev/null +++ b/module/block/test/model/update.php @@ -0,0 +1,74 @@ +#!/usr/bin/env php +id->range('2'); + $block->account->range('test'); + $block->vision->range('rnd'); + $block->module->range('test'); + $block->title->prefix('区块')->range('2'); + $block->source->range('my'); + $block->block->range('bug'); + $block->order->range('5'); + + $block->gen(1); +} + +/** + +title=14:11:23 ERROR: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry & +timeout=0 +cid=39 + +- 执行block模块的getByID方法,参数是$newBlockID + - 属性account @admin + - 属性vision @rnd + - 属性module @my + - 属性title @区块123 + - 属性source @my + - 属性block @bug + - 属性order @5 + +- 执行blockTest模块的create方法,参数是$accoutTooLangBlock,属性account @『所属用户』长度应当不超过『30』,且大于『0』。 + + + +*/ + +global $tester; +$tester->loadModel('block'); + +initData(); + +$newBlock = new stdclass(); +$newBlock->id = '2'; +$newBlock->account = 'newadmin'; +$newBlock->vision = 'lite'; +$newBlock->module = 'newmy'; +$newBlock->title = 'new区块'; +$newBlock->source = 'newmy'; +$newBlock->params = ''; +$newBlock->block = 'newbug'; +$newBlock->order = '5'; + +$accoutTooLangBlock = new stdclass(); +$accoutTooLangBlock->id = '2'; +$accoutTooLangBlock->account = 'adminadminadminadminadminadminadminadmin1'; +$accoutTooLangBlock->vision = 'rnd'; +$accoutTooLangBlock->module = 'my'; +$accoutTooLangBlock->title = 'long account'; +$accoutTooLangBlock->source = 'my'; +$accoutTooLangBlock->block = 'bug'; +$accoutTooLangBlock->order = '5'; + +$blockTest = new blockTest(); +$newBlockID = $blockTest->updateTest($newBlock); + +r($tester->block->getByID($newBlockID)) && p('account,vision,module,title,source,block,order') && e("{$newBlock->account},{$newBlock->vision},{$newBlock->module},{$newBlock->title},{$newBlock->source},{$newBlock->block},{$newBlock->order}"); // 测试获取正常的block的内容 +r($blockTest->updateTest($accoutTooLangBlock)) && p('account:0') && e('『所属用户』长度应当不超过『30』,且大于『0』。'); // 测试account 字段字符超出长度