From 465cbcbfa93ad88f24da4e24d0873fc85b5aa1b8 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Wed, 29 Nov 2023 14:50:56 +0800 Subject: [PATCH] * Add test file for the method of processChart. --- module/chart/test/chart.class.php | 25 ++++++++++++++++++++++++ module/chart/test/model/processchart.php | 22 +++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 module/chart/test/model/processchart.php diff --git a/module/chart/test/chart.class.php b/module/chart/test/chart.class.php index 40879b3eb1..186264fd92 100644 --- a/module/chart/test/chart.class.php +++ b/module/chart/test/chart.class.php @@ -6,4 +6,29 @@ class chartTest global $tester; $this->objectModel = $tester->loadModel('chart'); } + + /** + * 测试处理图表数据。 + * Test process the data of the chart. + * + * @param string $testType + * @access public + * @return object + */ + public function processChartTest(string $testType): object + { + $chart = $this->objectModel->getByID(1018); + $chart->langs = ''; + $chart->filters = ''; + $chart->settings = ''; + $chart->fields = '{"name":{"name":"\u9879\u76ee\u540d\u79f0","object":"project","field":"name","type":"string"},"closedDate":{"name":"\u5173\u95ed\u65e5\u671f","object":"project","field":"closedDate","type":"date"},"daterate":{"name":"daterate","object":"project","field":"daterate","type":"number"}}'; + + if($testType == 'sqlNull') $chart->sql = null; + if($testType == 'trimSQL') $chart->sql = "SELECT id FROM zt_project WHERE type='program' AND parent=0 AND deleted='0';"; + if($testType == 'decodeLangs') $chart->langs = '{"name":{"zh-cn":"\u9879\u76ee\u540d\u79f0","zh-tw":"","en":"","de":"","fr":""}}'; + if($testType == 'decodeFilters') $chart->filters = '[{"field":"closedDate","type":"date","name":"\u5173\u95ed\u65e5\u671f","default":{"begin":"","end":""}}]'; + if($testType == 'decodeSettings') $chart->settings = '[{"type":"cluBarY","xaxis":[{"field":"name","name":"\u9879\u76ee\u540d\u79f0","group":""}],"yaxis":[{"field":"daterate","name":"daterate","valOrAgg":"sum"}]}]'; + + return $this->objectModel->processChart($chart); + } } diff --git a/module/chart/test/model/processchart.php b/module/chart/test/model/processchart.php new file mode 100644 index 0000000000..fde40f26dc --- /dev/null +++ b/module/chart/test/model/processchart.php @@ -0,0 +1,22 @@ +#!/usr/bin/env php +config('module')->gen(27); +zdTable('user')->gen(5); +su('admin'); + +$chart = new chartTest(); +r($chart->processChartTest('sqlNull')) && p('sql') && e('~~'); //测试sql字段为null的情况 +r($chart->processChartTest('decodeLangs')) && p('langs[name]:zh-cn') && e('项目名称'); //测试解密langs字段 +r($chart->processChartTest('decodeFilters')) && p('filters[0]:field') && e('closedDate'); //测试解密filters字段 +r($chart->processChartTest('decodeSettings')) && p('settings[0]:type') && e('cluBarY'); //测试解密settings字段