* Refactor myModel::getReviewingDemands, and add its unit test.

This commit is contained in:
liumengyi
2023-11-27 14:40:17 +08:00
parent 675c02e937
commit 78afa53add
4 changed files with 66 additions and 5 deletions
+5 -5
View File
@@ -955,14 +955,15 @@ class myModel extends model
}
/**
* 获取待评审的需求池需求。
* Get reviewing demands.
*
* @param string $orderBy
* @param bool $checkExists
* @param string $orderBy
* @param bool $checkExists
* @access public
* @return array
* @return array|bool
*/
public function getReviewingDemands($orderBy = 'id_desc', $checkExists = false)
public function getReviewingDemands(string $orderBy = 'id_desc', bool $checkExists = false): array|bool
{
if(!common::hasPriv('demand', 'review')) return array();
@@ -991,7 +992,6 @@ class myModel extends model
}
$actions = $this->dao->select('objectID, `date`')->from(TABLE_ACTION)->where('objectType')->eq('demand')->andWhere('objectID')->in(array_keys($demands))->andWhere('action')->eq('submitreview')->orderBy('`date`')->fetchPairs('objectID', 'date');
foreach($actions as $demandID => $date) $demands[$demandID]->time = $date;
return array_values($demands);
}
@@ -0,0 +1,31 @@
#!/usr/bin/env php
<?php
declare(strict_types=1);
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/my.class.php';
zdTable('demand')->config('demand_reviewing')->gen('20');
zdTable('demandreview')->gen('20');
zdTable('user')->gen('5');
/**
title=测试 myModel->getReviewingDemands();
cid=1
pid=1
*/
$account = array('admin', 'user1');
$orderBy = array('id_desc', 'id_asc');
$checkExist = array(false, true);
$my = new myTest();
r($my->getReviewingDemandsTest($account[0], $orderBy[0], $checkExist[0])) && p() && e('19,15,11,7,3'); // 测试获取用户 account 排序 id_desc 的需求池需求id。
r($my->getReviewingDemandsTest($account[0], $orderBy[0], $checkExist[1])) && p() && e('exist'); // 测试获取用户 account 排序 id_desc 的需求池需求是否存在。
r($my->getReviewingDemandsTest($account[0], $orderBy[1], $checkExist[0])) && p() && e('3,7,11,15,19'); // 测试获取用户 account 排序 id_asc 的需求池需求id。
r($my->getReviewingDemandsTest($account[0], $orderBy[1], $checkExist[1])) && p() && e('exist'); // 测试获取用户 account 排序 id_asc 的需求池需求是否存在。
r($my->getReviewingDemandsTest($account[1], $orderBy[0], $checkExist[0])) && p() && e('empty'); // 测试获取用户 account 排序 id_desc 的需求池需求id。
r($my->getReviewingDemandsTest($account[1], $orderBy[0], $checkExist[1])) && p() && e('empty'); // 测试获取用户 account 排序 id_desc 的需求池需求是否存在。
r($my->getReviewingDemandsTest($account[1], $orderBy[1], $checkExist[0])) && p() && e('empty'); // 测试获取用户 account 排序 id_asc 的需求池需求id。
r($my->getReviewingDemandsTest($account[1], $orderBy[1], $checkExist[1])) && p() && e('empty'); // 测试获取用户 account 排序 id_asc 的需求池需求是否存在。
+21
View File
@@ -424,4 +424,25 @@ class myTest
if($return === true) return 'exist';
return !empty($return) ? implode(',', array_column($return, 'id')) : 'empty';
}
/**
* 测试获取审批中的用例。
* Test get reviewing demands.
*
* @param string $account
* @param string $orderBy
* @param bool $checkExist
* @access public
* @return int|string|array
*/
public function getReviewingDemandsTest(string $account, string $orderBy, bool $checkExist): int|string|array
{
su($account);
$return = $this->objectModel->getReviewingDemands($orderBy, $checkExist);
if(dao::isError()) return dao::getError();
if($return === true) return 'exist';
return !empty($return) ? implode(',', array_column($return, 'id')) : 'empty';
}
}
@@ -0,0 +1,9 @@
title: zt_story
desc: story data.
author: Mengyi Liu
version: "1.0"
fields:
- field: status
range: active,reviewing{3}
- field: version
range: 1