From cfabd3ccb0b1d1148d1d6dea722cfd16bc1159c3 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 9 Sep 2025 05:32:41 +0800 Subject: [PATCH] + [misc] Add unit tests for pivotModel::processRowSpan() 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 --- .../pivot/test/lib/pivot.unittest.class.php | 16 ++++ module/pivot/test/model/processrowspan.php | 80 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100755 module/pivot/test/model/processrowspan.php diff --git a/module/pivot/test/lib/pivot.unittest.class.php b/module/pivot/test/lib/pivot.unittest.class.php index 87150e9a3f..53fc443417 100644 --- a/module/pivot/test/lib/pivot.unittest.class.php +++ b/module/pivot/test/lib/pivot.unittest.class.php @@ -627,4 +627,20 @@ class pivotTest return $result; } + + /** + * Test processRowSpan method. + * + * @param array $records + * @param array $groups + * @access public + * @return array + */ + public function processRowSpanTest(array $records, array $groups): array + { + $result = $this->objectModel->processRowSpan($records, $groups); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/pivot/test/model/processrowspan.php b/module/pivot/test/model/processrowspan.php new file mode 100755 index 0000000000..b605f66f27 --- /dev/null +++ b/module/pivot/test/model/processrowspan.php @@ -0,0 +1,80 @@ +#!/usr/bin/env php +processRowSpanTest(array( + array( + 'group1' => array('value' => 'A'), + 'col1' => array('value' => 100), + 'col2' => array('value' => 200) + ), + array( + 'group1' => array('value' => 'B'), + 'col1' => array('value' => 150), + 'col2' => array('value' => 250) + ) +), array('group1'))) && p('0:group1:rowSpan,1:group1:rowSpan') && e('1,1'); // 步骤1:正常情况 + +r($pivotTest->processRowSpanTest(array( + array( + 'group1' => array('value' => 'A'), + 'group2' => array('value' => 'X'), + 'col1' => array('value' => 100) + ), + array( + 'group1' => array('value' => 'A'), + 'group2' => array('value' => 'Y'), + 'col1' => array('value' => 150) + ), + array( + 'group1' => array('value' => 'B'), + 'group2' => array('value' => 'X'), + 'col1' => array('value' => 200) + ) +), array('group1', 'group2'))) && p('0:group1:rowSpan,1:group1:rowSpan,2:group1:rowSpan') && e('2,2,1'); // 步骤2:多组分组 + +r($pivotTest->processRowSpanTest(array(), array('group1'))) && p() && e('0'); // 步骤3:空数组 + +r($pivotTest->processRowSpanTest(array( + array( + 'col1' => array('value' => 100), + 'col2' => array('value' => 200) + ), + array( + 'col1' => array('value' => 150), + 'col2' => array('value' => 250) + ) +), array())) && p('0:col1:rowSpan,1:col1:rowSpan') && e('1,1'); // 步骤4:无分组 + +r($pivotTest->processRowSpanTest(array( + array( + 'group1' => array('value' => 'A'), + 'col1' => array('value' => array(100, 150, 200)), + 'col2' => array('value' => 300) + ), + array( + 'group1' => array('value' => 'A'), + 'col1' => array('value' => 400), + 'col2' => array('value' => 500) + ) +), array('group1'))) && p('0:col1:rowSpan,0:col2:rowSpan,1:group1:rowSpan') && e('3,3,6'); // 步骤5:数组值处理 \ No newline at end of file