From bff90365e0bdbc079ce65ad67147c7517faab69c Mon Sep 17 00:00:00 2001 From: liugang Date: Wed, 10 Sep 2025 12:05:52 +0800 Subject: [PATCH] + [misc] Add unit tests for todoModel::dateRange() 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 --- module/todo/test/lib/todo.unittest.class.php | 19 +++++++++ module/todo/test/model/daterange.php | 45 ++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100755 module/todo/test/model/daterange.php diff --git a/module/todo/test/lib/todo.unittest.class.php b/module/todo/test/lib/todo.unittest.class.php index da7db8b0d8..a3208fc65b 100755 --- a/module/todo/test/lib/todo.unittest.class.php +++ b/module/todo/test/lib/todo.unittest.class.php @@ -460,4 +460,23 @@ class todoTest $result = $this->objectModel->insert($todo); return dao::isError() ? dao::getError() : $result; } + + /** + * Test dateRange method. + * + * @param string $type + * @access public + * @return array + */ + public function dateRangeTest(string $type): array + { + $reflection = new ReflectionClass($this->objectModel); + $method = $reflection->getMethod('dateRange'); + $method->setAccessible(true); + + $result = $method->invoke($this->objectModel, $type); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/todo/test/model/daterange.php b/module/todo/test/model/daterange.php new file mode 100755 index 0000000000..214d3572b5 --- /dev/null +++ b/module/todo/test/model/daterange.php @@ -0,0 +1,45 @@ +#!/usr/bin/env php +loadModel('todo'); +$tester->app->loadClass('date', true); + +$todoTest = new todoTest(); + +r($todoTest->dateRangeTest('future')) && p('begin,end') && e('2030-01-01,2030-01-01'); +r($todoTest->dateRangeTest('20250101')) && p('begin,end') && e('2025-01-01 00:00:00,2025-01-01 23:59:59'); +r($todoTest->dateRangeTest('today')) && p('begin') && e('2025-09-10'); +r($todoTest->dateRangeTest('before')) && p('begin,end') && e(',2025-09-09'); +r($todoTest->dateRangeTest('yesterday')) && p('begin') && e('2025-09-09'); +r($todoTest->dateRangeTest('thisweek')) && p('begin') && e('2025-09-08 00:00:00'); +r($todoTest->dateRangeTest('invalid_type')) && p('begin,end') && e(','); \ No newline at end of file