diff --git a/module/program/test/lib/programzen.unittest.class.php b/module/program/test/lib/programzen.unittest.class.php index 765cfcff98..212d4dc1a5 100644 --- a/module/program/test/lib/programzen.unittest.class.php +++ b/module/program/test/lib/programzen.unittest.class.php @@ -192,4 +192,22 @@ class programTest return $result; } + + /** + * Test removeSubjectToCurrent method. + * + * @param array $parents + * @param int $programID + * @access public + * @return array + */ + public function removeSubjectToCurrentTest(array $parents, int $programID) + { + $method = $this->objectZen->getMethod('removeSubjectToCurrent'); + $method->setAccessible(true); + $result = $method->invokeArgs($this->objectZen->newInstance(), array($parents, $programID)); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/program/test/zen/removesubjecttocurrent.php b/module/program/test/zen/removesubjecttocurrent.php new file mode 100755 index 0000000000..cfc06475e3 --- /dev/null +++ b/module/program/test/zen/removesubjecttocurrent.php @@ -0,0 +1,35 @@ +#!/usr/bin/env php +loadYaml('removesubjecttocurrent/project', false, 2)->gen(20); + +su('admin'); + +$programTest = new programTest(); + +r(count($programTest->removeSubjectToCurrentTest(array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5), 1))) && p() && e('4'); +r(count($programTest->removeSubjectToCurrentTest(array(1 => 1, 2 => 2, 3 => 3, 7 => 7, 8 => 8, 9 => 9, 10 => 10), 2))) && p() && e('6'); +r(count($programTest->removeSubjectToCurrentTest(array(), 1))) && p() && e('0'); +r(count($programTest->removeSubjectToCurrentTest(array(1 => 1, 2 => 2, 3 => 3, 11 => 11, 12 => 12), 11))) && p() && e('4'); +r(count($programTest->removeSubjectToCurrentTest(array(1 => 1, 2 => 2, 3 => 3), 999))) && p() && e('3'); +r(count($programTest->removeSubjectToCurrentTest(array(1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9, 10 => 10), 1))) && p() && e('9'); +r(count($programTest->removeSubjectToCurrentTest(array(3 => 3, 9 => 9, 10 => 10), 3))) && p() && e('2'); \ No newline at end of file diff --git a/module/program/test/zen/yaml/removesubjecttocurrent/project.yaml b/module/program/test/zen/yaml/removesubjecttocurrent/project.yaml new file mode 100644 index 0000000000..f4d94e3cc9 --- /dev/null +++ b/module/program/test/zen/yaml/removesubjecttocurrent/project.yaml @@ -0,0 +1,266 @@ +--- +title: 项目集数据定义 +desc: 用于测试 removeSubjectToCurrent 方法的项目集测试数据 + +fields: +- field: id + note: 项目集ID + range: 1-20 + prefix: "" + postfix: "" +- field: project + note: 所属项目 + range: 0 + prefix: "" + postfix: "" +- field: isTpl + note: 是否模板 + range: 0 + prefix: "" + postfix: "" +- field: charter + note: 项目章程 + range: 0 + prefix: "" + postfix: "" +- field: model + note: 项目模型 + range: '[]' + prefix: "" + postfix: "" +- field: type + note: 项目类型 + range: 'program{10},project{10}' + prefix: "" + postfix: "" +- field: category + note: 项目分类 + range: '[]' + prefix: "" + postfix: "" +- field: lifetime + note: 生命周期 + range: '[]' + prefix: "" + postfix: "" +- field: budget + note: 预算 + range: 0 + prefix: "" + postfix: "" +- field: budgetUnit + note: 预算单位 + range: CNY + prefix: "" + postfix: "" +- field: attribute + note: 属性 + range: '[]' + prefix: "" + postfix: "" +- field: percent + note: 完成百分比 + range: 0 + prefix: "" + postfix: "" +- field: milestone + note: 里程碑 + range: 0 + prefix: "" + postfix: "" +- field: output + note: 输出 + range: '``' + prefix: "" + postfix: "" +- field: auth + note: 权限 + range: '[]' + prefix: "" + postfix: "" +- field: storyType + note: 需求类型 + range: '[]' + prefix: "" + postfix: "" +- field: parent + note: 父项目集ID + range: '0,0,0,1,1,1,2,2,3,4,0,0,0,5,5,6,6,7,8,9' + prefix: "" + postfix: "" +- field: path + note: 路径 + range: ',1,{8},2,{8},3,{8},1,4,{7},1,5,{7},1,6,{7},2,7,{7},2,8,{7},3,9,{7},4,10,{6},11,{8},12,{8},13,{8},5,14,{7},5,15,{7},6,16,{7},6,17,{7},7,18,{7},8,19,{7},9,20,{7}' + prefix: "" + postfix: "" +- field: grade + note: 层级 + range: '1{3},2{3},2{2},2,2,1{3},2{2},2{2},2,2,2' + prefix: "" + postfix: "" +- field: name + note: 项目集名称 + range: 'Program{1-20}' + prefix: "" + postfix: "" + format: Program%d +- field: code + note: 项目集代码 + range: '[]' + prefix: "" + postfix: "" +- field: hasProduct + note: 是否有产品 + range: 1 + prefix: "" + postfix: "" +- field: workflowGroup + note: 工作流组 + range: 0 + prefix: "" + postfix: "" +- field: begin + note: 开始日期 + range: (-1M) + type: timestamp + format: YYYY-MM-DD +- field: end + note: 结束日期 + range: (+2M) + type: timestamp + format: YYYY-MM-DD +- field: firstEnd + note: 首次结束日期 + range: '``' + prefix: "" + postfix: "" +- field: realBegan + note: 实际开始日期 + range: '``' + prefix: "" + postfix: "" +- field: realEnd + note: 实际结束日期 + range: '``' + prefix: "" + postfix: "" +- field: days + note: 工作日 + range: 0 + prefix: "" + postfix: "" +- field: status + note: 状态 + range: 'wait{5},doing{10},closed{5}' + prefix: "" + postfix: "" +- field: desc + note: 描述 + range: '``' + prefix: "" + postfix: "" +- field: PM + note: 项目经理 + range: 'admin' + prefix: "" + postfix: "" +- field: PO + note: 产品负责人 + range: 'admin' + prefix: "" + postfix: "" +- field: QD + note: 测试负责人 + range: 'admin' + prefix: "" + postfix: "" +- field: RD + note: 发布负责人 + range: 'admin' + prefix: "" + postfix: "" +- field: openedBy + note: 创建人 + range: admin + prefix: "" + postfix: "" +- field: openedDate + note: 创建日期 + range: (-2M) + type: timestamp + format: YYYY-MM-DD hh:mm:ss +- field: openedVersion + note: 创建版本 + range: '``' + prefix: "" + postfix: "" +- field: lastEditedBy + note: 最后编辑人 + range: 'admin{10},[]{10}' + prefix: "" + postfix: "" +- field: lastEditedDate + note: 最后编辑日期 + range: '``' + prefix: "" + postfix: "" +- field: closedBy + note: 关闭人 + range: '``' + prefix: "" + postfix: "" +- field: closedDate + note: 关闭日期 + range: '``' + prefix: "" + postfix: "" +- field: canceledBy + note: 取消人 + range: '``' + prefix: "" + postfix: "" +- field: canceledDate + note: 取消日期 + range: '``' + prefix: "" + postfix: "" +- field: activatedBy + note: 激活人 + range: '``' + prefix: "" + postfix: "" +- field: activatedDate + note: 激活日期 + range: '``' + prefix: "" + postfix: "" +- field: suspendedDate + note: 挂起日期 + range: '``' + prefix: "" + postfix: "" +- field: vision + note: 视图 + range: rnd + prefix: "" + postfix: "" +- field: division + note: 部门 + range: 0 + prefix: "" + postfix: "" +- field: displayCards + note: 显示卡片 + range: 0 + prefix: "" + postfix: "" +- field: fluidBoard + note: 流动看板 + range: 0 + prefix: "" + postfix: "" +- field: deleted + note: 是否删除 + range: 0 + prefix: "" + postfix: ""