From 12ac0fbe9ef37770fdeaa4b687c29cc366eba7bb Mon Sep 17 00:00:00 2001 From: tianshujie Date: Sat, 2 Dec 2023 16:43:19 +0800 Subject: [PATCH] + Add doc::processDocForUpdate unit test. --- module/doc/test/doc.class.php | 24 +++++++++++ module/doc/test/model/processdocforupdate.php | 40 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 module/doc/test/model/processdocforupdate.php diff --git a/module/doc/test/doc.class.php b/module/doc/test/doc.class.php index 3156c48d3c..5ced18f59d 100644 --- a/module/doc/test/doc.class.php +++ b/module/doc/test/doc.class.php @@ -239,6 +239,30 @@ class docTest return $objects['changes']; } + /** + * 为更新文档处理数据。 + * Process data for update a doc. + * + * @param int $docID + * @param array $param + * @access public + * @return object + */ + public function processDocForUpdateTest(int $docID, array $param): object + { + $createFields = array('lib' => 0, 'module' => 0, 'title' => '', 'keywords' => '', 'type' => 'text', 'content' => '', 'contentType' => 'html', 'acl' => 'private', 'status' => 'normal'); + + $doc = new stdclass(); + foreach($createFields as $field => $defaultValue) $doc->{$field} = $defaultValue; + foreach($param as $key => $value) $doc->{$key} = $value; + + $oldDoc = $this->objectModel->getByID($docID); + $data = $this->objectModel->processDocForUpdate($oldDoc, $doc); + + if(dao::isError()) return dao::getError(); + return $data[0]; + } + /** * Function saveDraft test by doc * diff --git a/module/doc/test/model/processdocforupdate.php b/module/doc/test/model/processdocforupdate.php new file mode 100644 index 0000000000..e577b4b6d0 --- /dev/null +++ b/module/doc/test/model/processdocforupdate.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +processDocForUpdate(); +cid=1 +outtime=0 + +*/ + +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/doc.class.php'; + +zdTable('doccontent')->gen(50); +zdTable('doc')->config('doc')->gen(50); +zdTable('user')->gen(5); +su('admin'); + +$docIDs = array(41, 31, 39, 11, 1); +$acl = array('open', 'custom', 'private'); +$libIDs = array(26, 18, 25, 6, 11, 7); +$groups = '1,2,3'; +$users = 'admin,dev1,dev10'; + +$updateProductDoc = array('lib' => $libIDs[0], 'title' => '修改产品文档', 'acl' => $acl[1]); +$updateProjectDoc = array('lib' => $libIDs[1], 'title' => '修改项目文档', 'acl' => $acl[1]); +$updateExecutionDoc = array('lib' => $libIDs[2], 'title' => '修改执行文档', 'acl' => $acl[1]); +$updateCustomDoc = array('lib' => $libIDs[3], 'title' => '修改自定义文档', 'acl' => $acl[1]); +$privateDoc = array('lib' => $libIDs[3], 'title' => '修改私有文档', 'acl' => $acl[2]); +$mineDoc = array('lib' => $libIDs[4], 'title' => '修改我的文档', 'acl' => $acl[2]); +$customDoc = array('lib' => $libIDs[5], 'title' => '修改自定义文档', 'acl' => $acl[2], 'groups' => $groups, 'users' => $users); + +$docTester = new docTest(); +r($docTester->processDocForUpdateTest($docIDs[0], $updateProductDoc)) && p('lib,title,acl') && e('26,修改产品文档,custom'); // 修改产品文档 +r($docTester->processDocForUpdateTest($docIDs[1], $updateProjectDoc)) && p('lib,title,acl') && e('18,修改项目文档,custom'); // 修改项目文档 +r($docTester->processDocForUpdateTest($docIDs[2], $updateExecutionDoc)) && p('lib,title,acl') && e('25,修改执行文档,custom'); // 修改执行文档 +r($docTester->processDocForUpdateTest($docIDs[3], $updateCustomDoc)) && p('lib,title,acl') && e('6,修改自定义文档,custom'); // 修改自定义文档 +r($docTester->processDocForUpdateTest($docIDs[3], $privateDoc)) && p('lib,title,acl') && e('6,修改私有文档,private'); // 修改私有文档 +r($docTester->processDocForUpdateTest($docIDs[4], $mineDoc)) && p('lib,title,acl') && e('11,修改我的文档,private'); // 修改我的文档 +r($docTester->processDocForUpdateTest($docIDs[3], $customDoc)) && p('lib,title,acl') && e('7,修改自定义文档,private'); // 修改自定义文档