From 047338885366d74cdf117aa3f983eb8acb37feca Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 9 Sep 2025 06:13:21 +0800 Subject: [PATCH] + [misc] Add unit tests for pivotModel::setUniqueSlices() 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 | 46 +++++++++++++++++++ module/pivot/test/model/setuniqueslices.php | 33 +++++++++++++ 2 files changed, 79 insertions(+) create mode 100755 module/pivot/test/model/setuniqueslices.php diff --git a/module/pivot/test/lib/pivot.unittest.class.php b/module/pivot/test/lib/pivot.unittest.class.php index d947e4c3f7..af66959371 100644 --- a/module/pivot/test/lib/pivot.unittest.class.php +++ b/module/pivot/test/lib/pivot.unittest.class.php @@ -707,4 +707,50 @@ class pivotTest return $result; } + + /** + * Test setUniqueSlices method. + * + * @param string $slice + * @param array $records + * @access public + * @return array + */ + public function setUniqueSlicesTest(string $slice, array $records = null): array + { + if($records === null) { + // 构造测试数据 + $records = array(); + $record1 = new stdClass(); + $record2 = new stdClass(); + $record3 = new stdClass(); + $record4 = new stdClass(); + + if($slice == 'category') { + $record1->category = 'bug'; + $record1->id = 1; + $record2->category = 'story'; + $record2->id = 2; + $record3->category = 'bug'; + $record3->id = 3; + $record4->category = 'story'; + $record4->id = 4; + $records = array($record1, $record2, $record3, $record4); + } elseif($slice == 'priority') { + $record1->priority = '1'; + $record1->id = 1; + $record2->priority = '2'; + $record2->id = 2; + $record3->priority = '1'; + $record3->id = 3; + $records = array($record1, $record2, $record3); + } + } + + $setting = array('slice' => $slice); + $result = $this->objectModel->setUniqueSlices($records, $setting); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/pivot/test/model/setuniqueslices.php b/module/pivot/test/model/setuniqueslices.php new file mode 100755 index 0000000000..2385675425 --- /dev/null +++ b/module/pivot/test/model/setuniqueslices.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +setUniqueSlicesTest('category')) && p('slice') && e('category'); // 步骤1:正常情况返回slice字段 +r($pivotTest->setUniqueSlicesTest('noSlice')) && p('slice') && e('noSlice'); // 步骤2:noSlice情况 +r($pivotTest->setUniqueSlicesTest('category', array())) && p('slice') && e('category'); // 步骤3:空records +r($pivotTest->setUniqueSlicesTest('priority')) && p('slice') && e('priority'); // 步骤4:不同字段 +r($pivotTest->setUniqueSlicesTest('category')) && p('slice') && e('category'); // 步骤5:缓存机制验证 \ No newline at end of file