Files
EasySoft-ZenTaoPMS/module/program/test/model/appendstattoprojects.php
T
2023-09-18 14:02:00 +08:00

69 lines
2.8 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
zdTable('user')->gen(5);
su('admin');
zdTable('project')->gen(50);
zdTable('team')->gen(0);
$task = zdTable('task');
$task->project->range('1-20');
$task->gen(100);
/**
title=测试 programModel::appendStatToProjects();
timeout=0
cid=1
*/
global $tester;
$tester->loadModel('program');
$projectID = 11;
$hour = new stdclass();
$hour->totalConsumed = 15;
$hour->totalEstimate = 30;
$hour->totalLeft = 10;
$hour->progress = 60;
$hours[$projectID] = $hour;
$projects = $tester->program->dao->select('*')->from(TABLE_PROJECT)->where('id')->eq($projectID)->fetchAll('id');
$teams = $tester->program->dao->select('t1.root,t1.account')->from(TABLE_TEAM)->alias('t1')
->leftJoin(TABLE_USER)->alias('t2')->on('t1.account=t2.account')
->where('t1.root')->eq($projectID)
->andWhere('t1.type')->eq('project')
->andWhere('t2.deleted')->eq(0)
->fetchGroup('root', 'account');
$leftTasks = $tester->program->dao->select('t2.parent as project, count(*) as tasks')->from(TABLE_TASK)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->where('t1.project')->eq($projectID)
->andWhere('t1.status')->notIn('cancel,closed')
->groupBy('t2.parent')
->fetchAll('project');
r($tester->program->appendStatToProjects(array())) && p() && e('0'); // 不传入任何数据
r($tester->program->appendStatToProjects($projects)) && p('11:id') && e('11'); // 只传入项目数据
$stats = $tester->program->appendStatToProjects($projects, 'hours');
r(isset($stats[$projectID]->hours)) && p() && e('0'); // 只传入项目数据和hours追加字段
$stats = $tester->program->appendStatToProjects($projects, 'teamCount', array('hours' => $hours, 'teams' => $teams, 'leftTasks' => $leftTasks));
r(isset($stats[$projectID]->teamCount)) && p() && e('1'); // 只传入项目数据和teamCount追加字段
$stats = $tester->program->appendStatToProjects($projects, 'teamMembers');
r(isset($stats[$projectID]->teamMembers)) && p() && e('0'); // 只传入项目数据和teamMembers追加字段
$stats = $tester->program->appendStatToProjects($projects, 'leftTasks');
r(isset($stats[$projectID]->leftTasks)) && p() && e('0'); // 只传入项目数据和leftTasks追加字段
$stats = $tester->program->appendStatToProjects($projects, 'hours,teamCount,teamMembers,leftTasks', array('hours' => $hours, 'teams' => $teams, 'leftTasks' => $leftTasks));
$stat = $stats[$projectID];
r(isset($stat->hours)) && p() && e('1'); //正常传入数据,检查hours字段
r(isset($stat->teamCount)) && p() && e('1'); //正常传入数据,检查teamCount字段
r(isset($stat->teamMembers)) && p() && e('1'); //正常传入数据,检查teamMembers字段
r(isset($stat->leftTasks)) && p() && e('1'); //正常传入数据,检查leftTasks字段