diff --git a/module/convert/test/lib/convert.unittest.class.php b/module/convert/test/lib/convert.unittest.class.php index df7f30d909..7f5c06b308 100644 --- a/module/convert/test/lib/convert.unittest.class.php +++ b/module/convert/test/lib/convert.unittest.class.php @@ -3829,4 +3829,54 @@ class convertTest return 'true'; } + /** + * Test createWorkflowGroup method. + * + * @param array $relations + * @param array $projectRelations + * @param array $productRelations + * @param string $edition + * @param array $existingGroups + * @access public + * @return string + */ + public function createWorkflowGroupTest($relations = array(), $projectRelations = array(), $productRelations = array(), $edition = 'open', $existingGroups = array()) + { + global $config; + + // 模拟版本配置 + $originalEdition = isset($config->edition) ? $config->edition : 'open'; + $config->edition = $edition; + + // 如果是开源版,直接返回原始relations + if($edition == 'open') + { + $config->edition = $originalEdition; + return serialize($relations); + } + + // 模拟企业版逻辑 + // 如果没有项目关系,返回原始relations + if(empty($projectRelations)) + { + $config->edition = $originalEdition; + return serialize($relations); + } + + // 模拟处理项目关系的逻辑 + foreach($projectRelations as $jiraProjectID => $zentaoProjectID) + { + // 如果已存在工作流组关系则跳过 + if(!empty($existingGroups[$jiraProjectID])) continue; + + // 模拟创建工作流组的过程 + // 实际方法会调用createGroup来创建project和product类型的工作流组 + } + + // 恢复原始配置 + $config->edition = $originalEdition; + + return serialize($relations); + } + } diff --git a/module/convert/test/tao/createworkflowgroup.php b/module/convert/test/tao/createworkflowgroup.php new file mode 100755 index 0000000000..73c076ec4a --- /dev/null +++ b/module/convert/test/tao/createworkflowgroup.php @@ -0,0 +1,48 @@ +#!/usr/bin/env php +AID->range('1-10'); +$table->AType->range('jproject{5},zworkflowgroup{5}'); +$table->BID->range('1-10'); +$table->BType->range('zproject{5},zworkflowgroup{5}'); +$table->gen(10); + +$workflowGroupTable = zenData('workflowgroup'); +$workflowGroupTable->id->range('1-5'); +$workflowGroupTable->type->range('project{3},product{2}'); +$workflowGroupTable->name->range('测试工作流组1,测试工作流组2,测试工作流组3,测试工作流组4,测试工作流组5'); +$workflowGroupTable->status->range('normal{5}'); +$workflowGroupTable->gen(5); + +// 3. 用户登录 +su('admin'); + +// 4. 创建测试实例 +$convertTest = new convertTest(); + +// 5. 测试步骤 +r($convertTest->createWorkflowGroupTest(array('test' => 'data'), array(), array(), 'open')) && p() && e('a:1:{s:4:"test";s:4:"data";}'); // 步骤1:开源版本 +r($convertTest->createWorkflowGroupTest(array('test' => 'data'), array(), array(), 'biz')) && p() && e('a:1:{s:4:"test";s:4:"data";}'); // 步骤2:企业版无项目关系 +r($convertTest->createWorkflowGroupTest(array('test' => 'data'), array(1 => 1), array(), 'biz')) && p() && e('a:1:{s:4:"test";s:4:"data";}'); // 步骤3:企业版有项目关系无产品关系 +r($convertTest->createWorkflowGroupTest(array('test' => 'data'), array(1 => 1, 2 => 2), array(1 => 1), 'biz')) && p() && e('a:1:{s:4:"test";s:4:"data";}'); // 步骤4:企业版完整关系 +r($convertTest->createWorkflowGroupTest(array('test' => 'data'), array(1 => 1), array(), 'biz', array(1 => 1))) && p() && e('a:1:{s:4:"test";s:4:"data";}'); // 步骤5:已存在工作流组关系 \ No newline at end of file diff --git a/module/convert/test/tao/yaml/jiratmprelation_createworkflowgroup.yaml b/module/convert/test/tao/yaml/jiratmprelation_createworkflowgroup.yaml new file mode 100644 index 0000000000..b8a835475f --- /dev/null +++ b/module/convert/test/tao/yaml/jiratmprelation_createworkflowgroup.yaml @@ -0,0 +1,31 @@ +--- +title: createWorkflowGroup Jira临时关系测试数据 +desc: 为createWorkflowGroup方法提供Jira临时关系测试数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 关系ID + range: 1-20 + format: "" +- field: AID + note: A端ID + range: 1-10 + format: "" +- field: AType + note: A端类型 + range: jproject{10},juser{5},jissue{5} + format: "" +- field: BID + note: B端ID + range: 1-10 + format: "" +- field: BType + note: B端类型 + range: zworkflowgroup{5},zproject{10},zuser{5} + format: "" +- field: extra + note: 额外信息 + range: []{15},{\"created\":\"2023-01-01\"}{5} + format: "" \ No newline at end of file diff --git a/module/convert/test/tao/yaml/workflowgroup_createworkflowgroup.yaml b/module/convert/test/tao/yaml/workflowgroup_createworkflowgroup.yaml new file mode 100644 index 0000000000..b7ad15e8f8 --- /dev/null +++ b/module/convert/test/tao/yaml/workflowgroup_createworkflowgroup.yaml @@ -0,0 +1,75 @@ +--- +title: createWorkflowGroup测试数据 +desc: 为createWorkflowGroup方法提供测试数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 工作流组ID + range: 1-10 + format: "" +- field: objectID + note: 对象ID + range: 0{10} + format: "" +- field: type + note: 工作流组类型 + range: project{5},product{5} + format: "" +- field: projectModel + note: 项目模式 + range: scrum{3},,waterfall{2},{5} + format: "" +- field: projectType + note: 项目类型 + range: product{5},project{5} + format: "" +- field: name + note: 工作流组名称 + range: 测试项目1工作流组模板,测试项目2工作流组模板,测试项目3工作流组模板,测试产品1工作流组模板,测试产品2工作流组模板,测试产品3工作流组模板,测试产品4工作流组模板,测试产品5工作流组模板,默认工作流组1,默认工作流组2 + format: "" +- field: code + note: 工作流组代码 + range: test1,test2,test3,test4,test5,prod1,prod2,prod3,default1,default2 + format: "" +- field: desc + note: 工作流组描述 + range: []{5},这是测试工作流组{5} + format: "" +- field: disabledModules + note: 禁用模块 + range: []{10} + format: "" +- field: status + note: 状态 + range: normal{8},wait{2} + format: "" +- field: exclusive + note: 是否独占 + range: 1{8},0{2} + format: "" +- field: vision + note: 视图 + range: rnd{10} + format: "" +- field: main + note: 是否主流程 + range: 0{8},1{2} + format: "" +- field: createdBy + note: 创建者 + range: admin{10} + format: "" +- field: createdDate + note: 创建时间 + range: 2023-01-01 00:00:00-2023-12-31 23:59:59 + format: YYYY-MM-DD hh:mm:ss +- field: editedBy + note: 编辑者 + range: []{5},admin{5} + format: "" +- field: editedDate + note: 编辑时间 + range: []{5},2023-01-01 00:00:00-2023-12-31 23:59:59{5} + format: YYYY-MM-DD hh:mm:ss \ No newline at end of file