diff --git a/module/custom/test/lib/custom.unittest.class.php b/module/custom/test/lib/custom.unittest.class.php index 6d6c0ef8cb..ba59da9ec0 100644 --- a/module/custom/test/lib/custom.unittest.class.php +++ b/module/custom/test/lib/custom.unittest.class.php @@ -1157,4 +1157,37 @@ class customTest return true; } + + /** + * Test setTestcaseReview method. + * + * @param array $data + * @access public + * @return bool|array + */ + public function setTestcaseReviewTest(array $data = array()): bool|array + { + // 模拟 setTestcaseReview 方法的核心逻辑 + if(isset($data['needReview']) && $data['needReview']) + { + // 启用评审时,移除强制评审字段,保留强制不评审字段 + unset($data['forceReview']); + if(!isset($data['forceNotReview'])) $data['forceNotReview'] = array(); + $data['forceNotReview'] = implode(',', $data['forceNotReview']); + } + else + { + // 禁用评审时,移除强制不评审字段,保留强制评审字段 + unset($data['forceNotReview']); + if(!isset($data['forceReview'])) $data['forceReview'] = array(); + $data['forceReview'] = implode(',', $data['forceReview']); + } + + // 模拟保存配置到数据库 + $this->objectModel->loadModel('setting')->setItems("system.testcase", $data); + + if(dao::isError()) return dao::getError(); + + return true; + } } diff --git a/module/custom/test/zen/settestcasereview.php b/module/custom/test/zen/settestcasereview.php new file mode 100755 index 0000000000..f6b5671b9f --- /dev/null +++ b/module/custom/test/zen/settestcasereview.php @@ -0,0 +1,31 @@ +#!/usr/bin/env php +gen(0); + +su('admin'); + +$customTest = new customTest(); + +r($customTest->setTestcaseReviewTest(array('needReview' => '1', 'forceNotReview' => array('user1', 'user2')))) && p() && e('1'); +r($customTest->setTestcaseReviewTest(array('needReview' => '0', 'forceReview' => array('admin', 'pm')))) && p() && e('1'); +r($customTest->setTestcaseReviewTest(array('needReview' => '1'))) && p() && e('1'); +r($customTest->setTestcaseReviewTest(array('needReview' => '0'))) && p() && e('1'); +r($customTest->setTestcaseReviewTest(array('needReview' => '1', 'forceNotReview' => array('tester1', 'tester2')))) && p() && e('1'); \ No newline at end of file