From 014e79fff73bf1bc0dad0f5083679fac7e57175e Mon Sep 17 00:00:00 2001 From: liumengyi Date: Mon, 4 Dec 2023 09:19:47 +0800 Subject: [PATCH] * Refactor holidayModel::create, and modify its unit test. --- module/holiday/model.php | 6 +++--- module/holiday/test/holiday.class.php | 18 ++++++++++-------- module/holiday/test/model/create.php | 23 ++++++++++++++--------- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/module/holiday/model.php b/module/holiday/model.php index da5ead6552..2077cab4d0 100644 --- a/module/holiday/model.php +++ b/module/holiday/model.php @@ -64,7 +64,7 @@ class holidayModel extends model * 创建一个节假日。 * Create a holiday. * - * @param object $holiday + * @param object $holiday * @access public * @return int|bool */ @@ -79,8 +79,8 @@ class holidayModel extends model if(dao::isError()) return false; - $beginDate = $this->post->begin; - $endDate = $this->post->end; + $beginDate = $holiday->begin; + $endDate = $holiday->end; /* Update project. */ $this->updateProgramPlanDuration($beginDate, $endDate); diff --git a/module/holiday/test/holiday.class.php b/module/holiday/test/holiday.class.php index 3611367a1e..164af546c6 100644 --- a/module/holiday/test/holiday.class.php +++ b/module/holiday/test/holiday.class.php @@ -61,13 +61,14 @@ class holidayTest } /** - * Test create method. + * 测试创建一个家假日。 + * Test create a holiday. * - * @param array $param + * @param array $param * @access public - * @return object + * @return object|bool|array */ - public function createTest($param = array()) + public function createTest(array $param = array()): object|bool|array { $defaultParam['type'] = 'holiday'; $defaultParam['begin'] = '2022-01-01'; @@ -75,11 +76,12 @@ class holidayTest $defaultParam['name'] = '测试创建holiday'; $defaultParam['desc'] = '默认的holiday'; - foreach($defaultParam as $field => $defaultValue) $_POST[$field] = $defaultValue; + $holiday = new stdclass(); - foreach($param as $key => $value) $_POST[$key] = $value; - $lastInsertID = $this->objectModel->create(); - unset($_POST); + foreach($defaultParam as $field => $defaultValue) $holiday->{$field} = $defaultValue; + foreach($param as $key => $value) $holiday->{$key} = $value; + + $lastInsertID = $this->objectModel->create($holiday); if(dao::isError()) { diff --git a/module/holiday/test/model/create.php b/module/holiday/test/model/create.php index 6203dded07..1c1a388578 100755 --- a/module/holiday/test/model/create.php +++ b/module/holiday/test/model/create.php @@ -1,7 +1,13 @@ #!/usr/bin/env php gen(0); +zdTable('project')->gen(10); +zdTable('user')->gen(1); + su('admin'); /** @@ -10,8 +16,8 @@ title=测试 holidayModel->create(); cid=1 pid=1 -测试创建holiday >> 101,测试创建holiday,holiday -测试创建working >> 102,测试创建working,working +测试创建holiday >> 1,测试创建holiday,holiday +测试创建working >> 2,测试创建working,working 测试不传入必填项开始日期 >> 『开始日期』不能为空。 测试不传入必填项结束日期 >> 『结束日期』不能为空。 测试不传入必填项名称 >> 『名称』不能为空。 @@ -28,10 +34,9 @@ $createNoEnd = array('name' => '不传入结束日期', 'type' => 'holiday' $createNoName = array('name' => '', 'type' => 'holiday'); $createErrorDate = array('begin' => '2022-01-10', 'end' => '2022-01-01'); -r($holiday->createTest($createHoliday)) && p('id,name,type') && e('101,测试创建holiday,holiday'); //测试创建holiday -r($holiday->createTest($createWorking)) && p('id,name,type') && e('102,测试创建working,working'); //测试创建working -r($holiday->createTest($createNoBegin)) && p('begin:0') && e('『开始日期』不能为空。'); //测试不传入必填项开始日期 -r($holiday->createTest($createNoEnd)) && p('end:0') && e('『结束日期』不能为空。'); //测试不传入必填项结束日期 -r($holiday->createTest($createNoName)) && p('name:0') && e('『名称』不能为空。'); //测试不传入必填项名称 -r($holiday->createTest($createErrorDate)) && p('end:0') && e('『结束日期』应当不小于『2022-01-10』。'); //测试传入小于开始日期的结束日期 - +r($holiday->createTest($createHoliday)) && p('id,name,type') && e('1,测试创建holiday,holiday'); // 测试创建holiday +r($holiday->createTest($createWorking)) && p('id,name,type') && e('2,测试创建working,working'); // 测试创建working +r($holiday->createTest($createNoBegin)) && p('begin:0') && e('『开始日期』不能为空。'); // 测试不传入必填项开始日期 +r($holiday->createTest($createNoEnd)) && p('end:0') && e('『结束日期』不能为空。'); // 测试不传入必填项结束日期 +r($holiday->createTest($createNoName)) && p('name:0') && e('『名称』不能为空。'); // 测试不传入必填项名称 +r($holiday->createTest($createErrorDate)) && p('end:0') && e('『结束日期』应当不小于『2022-01-10』。'); // 测试传入小于开始日期的结束日期