From 05e86dcd2368fb25a1939dad48070be91b682b85 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 9 Sep 2025 07:37:01 +0800 Subject: [PATCH] + [misc] Add unit tests for pivotModel::processFilters() 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/processfilters.php | 54 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100755 module/pivot/test/model/processfilters.php diff --git a/module/pivot/test/lib/pivot.unittest.class.php b/module/pivot/test/lib/pivot.unittest.class.php index d575a63619..ef4021c111 100644 --- a/module/pivot/test/lib/pivot.unittest.class.php +++ b/module/pivot/test/lib/pivot.unittest.class.php @@ -970,4 +970,20 @@ class pivotTest return $result; } + + /** + * Test processFilters method. + * + * @param array $filters + * @param string $filterStatus + * @access public + * @return array + */ + public function processFiltersTest(array $filters, string $filterStatus): array + { + $result = $this->objectModel->processFilters($filters, $filterStatus); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/pivot/test/model/processfilters.php b/module/pivot/test/model/processfilters.php new file mode 100755 index 0000000000..a1fed92754 --- /dev/null +++ b/module/pivot/test/model/processfilters.php @@ -0,0 +1,54 @@ +#!/usr/bin/env php + 'filter1', 'status' => 'published', 'account' => 'admin'), + array('name' => 'filter2', 'status' => 'design', 'account' => 'admin'), + array('name' => 'filter3', 'status' => 'published', 'account' => 'user1') +); + +$designFilters = array( + array('name' => 'filter1', 'status' => 'design', 'account' => 'admin'), + array('name' => 'filter2', 'status' => 'design', 'account' => 'user1'), + array('name' => 'filter3', 'status' => 'published', 'account' => 'admin') +); + +$emptyFilters = array(); + +$mixedFilters = array( + array('name' => 'filter1', 'account' => 'admin'), + array('name' => 'filter2', 'status' => 'design', 'account' => 'admin'), + array('name' => 'filter3', 'status' => 'published', 'account' => 'user1') +); + +// 5. 强制要求:必须包含至少5个测试步骤 +r(count($pivotTest->processFiltersTest($publishedFilters, 'published'))) && p() && e('2'); // 步骤1:published状态移除design过滤器 +r(count($pivotTest->processFiltersTest($designFilters, 'design'))) && p() && e('1'); // 步骤2:design状态只保留当前用户过滤器 +r(count($pivotTest->processFiltersTest($emptyFilters, 'published'))) && p() && e('0'); // 步骤3:空数组输入 +r(count($pivotTest->processFiltersTest($publishedFilters, 'other'))) && p() && e('3'); // 步骤4:其他状态值处理 +r(count($pivotTest->processFiltersTest($mixedFilters, 'published'))) && p() && e('2'); // 步骤5:混合状态过滤器处理 \ No newline at end of file