From 9bb3bc39b3d3f31f5f283d7b135b0221eb286533 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 16 Sep 2025 20:17:21 +0800 Subject: [PATCH] + [misc] Add unit tests for programplanZen::computeFieldsCreateView() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../test/lib/programplan.unittest.class.php | 27 +++++++ .../test/zen/computefieldscreateview.php | 72 +++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100755 module/programplan/test/zen/computefieldscreateview.php diff --git a/module/programplan/test/lib/programplan.unittest.class.php b/module/programplan/test/lib/programplan.unittest.class.php index 095c68fe6d..03db032884 100644 --- a/module/programplan/test/lib/programplan.unittest.class.php +++ b/module/programplan/test/lib/programplan.unittest.class.php @@ -696,4 +696,31 @@ class programplanTest return $viewData; } + + /** + * Test computeFieldsCreateView method. + * + * @param object $viewData + * @access public + * @return array + */ + public function computeFieldsCreateViewTest(object $viewData): array + { + try + { + $reflection = new ReflectionClass($this->zenInstance); + $method = $reflection->getMethod('computeFieldsCreateView'); + $method->setAccessible(true); + + $result = $method->invoke($this->zenInstance, $viewData); + + if(dao::isError()) return dao::getError(); + + return $result; + } + catch(Throwable $e) + { + return array('error' => $e->getMessage()); + } + } } diff --git a/module/programplan/test/zen/computefieldscreateview.php b/module/programplan/test/zen/computefieldscreateview.php new file mode 100755 index 0000000000..5616c19d35 --- /dev/null +++ b/module/programplan/test/zen/computefieldscreateview.php @@ -0,0 +1,72 @@ +#!/usr/bin/env php +project = new stdclass(); +$viewData1->project->model = 'scrum'; +$viewData1->executionType = 'stage'; +$viewData1->planID = 0; +$result1 = $programplanTest->computeFieldsCreateViewTest($viewData1); +r(isset($result1['error']) ? 1 : 0) && p() && e(1); + +// 测试步骤2:测试sprint执行类型的字段计算 +$viewData2 = new stdclass(); +$viewData2->project = new stdclass(); +$viewData2->project->model = 'scrum'; +$viewData2->executionType = 'sprint'; +$viewData2->planID = 0; +$result2 = $programplanTest->computeFieldsCreateViewTest($viewData2); +r(isset($result2['error']) ? 1 : 0) && p() && e(0); + +// 测试步骤3:测试ipd模型项目的字段计算 +$viewData3 = new stdclass(); +$viewData3->project = new stdclass(); +$viewData3->project->model = 'ipd'; +$viewData3->executionType = 'stage'; +$viewData3->planID = 0; +$result3 = $programplanTest->computeFieldsCreateViewTest($viewData3); +r(isset($result3['error']) ? 1 : 0) && p() && e(0); + +// 测试步骤4:测试waterfallplus模型项目的字段计算 +$viewData4 = new stdclass(); +$viewData4->project = new stdclass(); +$viewData4->project->model = 'waterfallplus'; +$viewData4->executionType = 'stage'; +$viewData4->planID = 0; +$result4 = $programplanTest->computeFieldsCreateViewTest($viewData4); +r(isset($result4['error']) ? 1 : 0) && p() && e(0); + +// 测试步骤5:测试带有planID的情况字段计算 +$viewData5 = new stdclass(); +$viewData5->project = new stdclass(); +$viewData5->project->model = 'scrum'; +$viewData5->executionType = 'stage'; +$viewData5->planID = 1; +$result5 = $programplanTest->computeFieldsCreateViewTest($viewData5); +r(isset($result5['error']) ? 1 : 0) && p() && e(1); \ No newline at end of file