znt/module/report/test/lib/zen.class.php

103 lines
3.9 KiB
PHP
Raw Permalink Normal View History

<?php
declare(strict_types = 1);
require_once dirname(__FILE__, 5) . '/test/lib/test.class.php';
class reportZenTest extends baseTest
{
protected $moduleName = 'report';
protected $className = 'zen';
/**
* Test assignAnnualBaseData method.
*
* @param string $account
* @param string $dept
* @param string $year
* @access public
* @return mixed
*/
public function assignAnnualBaseDataTest(string $account, string $dept, string $year)
{
$result = $this->invokeArgs('assignAnnualBaseData', [$account, $dept, $year]);
if(dao::isError()) return dao::getError();
return $result;
}
/**
* Test assignAnnualReport method.
*
* @param string $year
* @param string $dept
* @param string $account
* @access public
* @return mixed
*/
public function assignAnnualReportTest(string $year, string $dept, string $account)
{
// 获取或创建report zen实例
$instance = $this->getInstance($this->moduleName, $this->className);
// 调用方法
$this->invokeArgs('assignAnnualReport', [$year, $dept, $account]);
if(dao::isError()) return dao::getError();
// 收集view属性用于验证,view应该在instance对象中
$result = array();
$result['dept'] = isset($instance->view->dept) ? (string)$instance->view->dept : '';
$result['year'] = isset($instance->view->year) ? (string)$instance->view->year : '';
$result['hasYears'] = isset($instance->view->years) && !empty($instance->view->years) ? 'yes' : 'no';
$result['hasMonths'] = isset($instance->view->months) && !empty($instance->view->months) ? 'yes' : 'no';
$result['hasContributionGroups'] = isset($instance->view->contributionGroups) && !empty($instance->view->contributionGroups) ? 'yes' : 'no';
$result['hasRadarData'] = isset($instance->view->radarData) && is_array($instance->view->radarData) ? 'yes' : 'no';
$result['hasMaxCount'] = isset($instance->view->maxCount) && is_numeric($instance->view->maxCount) ? 'yes' : 'no';
$result['hasContributionCount'] = isset($instance->view->contributionCount) && is_numeric($instance->view->contributionCount) ? 'yes' : 'no';
$result['hasData'] = isset($instance->view->data) && is_array($instance->view->data) ? 'yes' : 'no';
return $result;
}
/**
* Test assignAnnualData method.
*
* @param string $year
* @param string|int $dept
* @param string $account
* @param array $accounts
* @param int $userCount
* @access public
* @return array
*/
public function assignAnnualDataTest(string $year, string|int $dept, string $account, array $accounts, int $userCount): array
{
$instance = $this->getInstance($this->moduleName, $this->className);
$this->invokeArgs('assignAnnualData', [$year, $dept, $account, $accounts, $userCount]);
if(dao::isError()) return dao::getError();
$data = $instance->view->data ?? array();
return array(
'users' => isset($data['users']) ? (string)$data['users'] : '',
'logins' => isset($data['logins']) ? (string)$data['logins'] : '',
'actions' => isset($data['actions']) ? (string)$data['actions'] : '',
'todos' => isset($data['todos']) ? "{$data['todos']->count},{$data['todos']->undone},{$data['todos']->done}" : '',
'consumed' => isset($data['consumed']) ? (string)$data['consumed'] : '',
'hasStatusStat' => isset($data['statusStat']) ? 'yes' : 'no',
);
}
/**
* Test getReminder method.
*
* @access public
* @return mixed
*/
public function getReminderTest()
{
$result = $this->invokeArgs('getReminder', []);
if(dao::isError()) return dao::getError();
return $result;
}
}