Files
EasySoft-ZenTaoPMS/module/user/test/model/getobjectsauthedusers.php
2025-11-14 13:05:25 +08:00

142 lines
5.2 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env php
<?php
/**
title=测试 userModel::getObjectsAuthedUsers();
timeout=0
cid=19620
- 执行userTest模块的getObjectsAuthedUsersTest方法参数是array 属性admin @admin
- 执行userTest模块的getObjectsAuthedUsersTest方法参数是array 属性admin @admin
- 执行userTest模块的getObjectsAuthedUsersTest方法参数是array 属性admin @admin
- 执行userTest模块的getObjectsAuthedUsersTest方法参数是array 属性admin @admin
- 执行userTest模块的getObjectsAuthedUsersTest方法参数是array @0
- 执行userTest模块的getObjectsAuthedUsersTest方法参数是array @0
- 执行userTest模块的getObjectsAuthedUsersTest方法参数是array
- 属性admin @admin
- 属性user4 @user4
*/
// 1. 导入依赖
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/user.unittest.class.php';
// 2. zendata数据准备
$user = zenData('user');
$user->account->range('admin,user1,user2,user3,user4');
$user->realname->range('管理员,用户一,用户二,用户三,用户四');
$user->role->range('admin,dev,qa,pm,po');
$user->deleted->range('0{5}');
$user->gen(5);
$project = zenData('project');
$project->id->range('1-10');
$project->name->range('项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10');
$project->type->range('project{5},program{3},sprint{2}');
$project->acl->range('open{3},private{4},program{3}');
$project->path->range('`,1,`,`,2,`,`,3,`,`,1,2,`,`,1,3,`,`,2,4,`,`,3,5,`,`,1,2,6,`,`,1,3,7,`');
$project->deleted->range('0{10}');
$project->gen(10);
$product = zenData('product');
$product->id->range('1-5');
$product->name->range('产品1,产品2,产品3,产品4,产品5');
$product->type->range('normal{3},branch{2}');
$product->acl->range('open{2},private{3}');
$product->deleted->range('0{5}');
$product->gen(5);
$team = zenData('team');
$team->root->range('1-10');
$team->account->range('admin{2},user1{3},user2{2},user3{2},user4{1}');
$team->type->range('project{6},execution{4}');
$team->gen(10);
$acl = zenData('acl');
$acl->account->range('admin,user1,user2,user3');
$acl->objectType->range('project,product,program,sprint');
$acl->objectID->range('1-5');
$acl->type->range('whitelist{8},stakeholder{4}');
$acl->gen(12);
// 3. 用户登录
su('admin');
// 4. 创建测试实例
$userTest = new userTest();
// 5. 测试步骤
// 创建项目对象
$projectObject = new stdClass();
$projectObject->id = 1;
$projectObject->type = 'project';
$projectObject->acl = 'private';
$projectObject->openedBy = 'admin';
$projectObject->PM = 'admin';
$projectObject->PO = '';
$projectObject->QD = '';
$projectObject->RD = '';
$projectObject->createdBy = 'admin';
$projectObject->parent = 0;
$stakeholderGroup = array(1 => array('admin' => 'admin', 'user1' => 'user1'));
$teamsGroup = array(1 => array('admin' => 'admin', 'user2' => 'user2'));
$whiteListGroup = array(1 => array('user3' => 'user3'));
$adminsGroup = array(1 => array('admin' => 'admin'));
r($userTest->getObjectsAuthedUsersTest(array($projectObject), 'project', $stakeholderGroup, $teamsGroup, $whiteListGroup, $adminsGroup)) && p('admin') && e('admin');
// 创建产品对象
$productObject = new stdClass();
$productObject->id = 1;
$productObject->type = 'product';
$productObject->acl = 'private';
$productObject->PO = 'admin';
$productObject->QD = '';
$productObject->RD = '';
$productObject->createdBy = 'admin';
r($userTest->getObjectsAuthedUsersTest(array($productObject), 'product', $stakeholderGroup, $teamsGroup, $whiteListGroup, $adminsGroup)) && p('admin') && e('admin');
// 创建程序对象
$programObject = new stdClass();
$programObject->id = 1;
$programObject->type = 'program';
$programObject->acl = 'program';
$programObject->path = ',1,';
$programObject->openedBy = 'admin';
$programObject->PM = 'admin';
$programObject->parent = 0;
r($userTest->getObjectsAuthedUsersTest(array($programObject), 'program', $stakeholderGroup, $teamsGroup, $whiteListGroup, $adminsGroup)) && p('admin') && e('admin');
// 创建迭代对象
$sprintObject = new stdClass();
$sprintObject->id = 1;
$sprintObject->type = 'sprint';
$sprintObject->project = 1;
$sprintObject->openedBy = 'admin';
$sprintObject->PM = 'admin';
$sprintObject->PO = '';
$sprintObject->QD = '';
$sprintObject->RD = '';
$sprintObject->acl = 'private';
$sprintObject->parent = 0;
$parentTeamsGroup = array(1 => array('admin' => 'admin'));
r($userTest->getObjectsAuthedUsersTest(array($sprintObject), 'sprint', $stakeholderGroup, $teamsGroup, $whiteListGroup, $adminsGroup)) && p('admin') && e('admin');
// 测试空对象数组
r($userTest->getObjectsAuthedUsersTest(array(), 'project', $stakeholderGroup, $teamsGroup, $whiteListGroup, $adminsGroup)) && p() && e(0);
// 测试无效对象类型
r($userTest->getObjectsAuthedUsersTest(array($projectObject), 'invalid', $stakeholderGroup, $teamsGroup, $whiteListGroup, $adminsGroup)) && p() && e(0);
// 测试带父级权限的程序
$parentStakeholderGroup = array(1 => array('user4' => 'user4'));
$parentPMGroup = array(1 => array('admin' => 'admin'));
r($userTest->getObjectsAuthedUsersTest(array($programObject), 'program', $stakeholderGroup, $teamsGroup, $whiteListGroup, $adminsGroup, $parentStakeholderGroup, $parentPMGroup)) && p('admin,user4') && e('admin,user4');