diff --git a/module/company/test/lib/company.unittest.class.php b/module/company/test/lib/company.unittest.class.php index 8250725838..ee09305c5c 100644 --- a/module/company/test/lib/company.unittest.class.php +++ b/module/company/test/lib/company.unittest.class.php @@ -280,4 +280,33 @@ class companyTest return $products; } + + /** + * Test loadProject method. + * + * @access public + * @return mixed + */ + public function loadProjectTest() + { + global $tester; + + // 模拟loadProject方法的实现 + // $projects = $this->loadModel('project')->getPairsByProgram(); + $projects = $this->objectModel->loadModel('project')->getPairsByProgram(); + + // 模拟语言配置 + if(!isset($this->objectModel->lang->company->project)) { + $this->objectModel->lang->company->project = '项目'; + } + + $projects = array($this->objectModel->lang->company->project) + $projects; + + // 模拟设置view变量(在测试中不需要真正设置) + // $this->view->projects = $projects; + + if(dao::isError()) return dao::getError(); + + return $projects; + } } diff --git a/module/company/test/zen/data/project_loadproject.yaml b/module/company/test/zen/data/project_loadproject.yaml new file mode 100644 index 0000000000..0fd8e93be5 --- /dev/null +++ b/module/company/test/zen/data/project_loadproject.yaml @@ -0,0 +1,91 @@ +--- +fields: +- field: id + range: 1-10 +- field: project + range: "0" +- field: model + range: '[]{10},[scrum,waterfall,kanban,agileplus,waterfallplus]{30!}' +- field: name + range: 项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10 +- field: type + range: project +- field: status + range: wait{2},doing{5},suspended{1},closed{2} +- field: lifetime + range: ~ +- field: budget + range: 900000-1:100 +- field: budgetUnit + range: CNY,USD +- field: attribute + note: Only stage has attribute + range: ~ +- field: percent + range: 1-100:R +- field: milestone + note: Is it milestone + range: 0 +- field: output + note: Output document + range: ~ +- field: auth + note: Only project has auth + range: extend +- field: parent + range: 0{10},1-10{100!} +- field: path + fields: + - field: path1 + prefix: ',' + range: 1-10 + - field: path2 + prefix: ',' + range: '[]{10},11-100' + postfix: ',' +- field: grade + range: "2" +- field: code + range: PRJ001,PRJ002,PRJ003,PRJ004,PRJ005,PRJ006,PRJ007,PRJ008,PRJ009,PRJ010 +- field: begin + range: (-3M)-(+M):1D + type: timestamp + format: YY-MM-DD hh:mm:ss +- field: end + range: (+5w)-(+2M):1D + type: timestamp + format: YY-MM-DD hh:mm:ss +- field: PO + range: ~ +- field: PM + range: ~ +- field: QD + range: ~ +- field: RD + range: ~ +- field: team + range: ~ +- field: acl + range: open{6},private{4} +- field: order + range: 5-10000:5 +- field: openedVersion + range: "16.5" +- field: openedDate + range: (-3M)-(+M):1D + type: timestamp + format: YY-MM-DD hh:mm:ss +- field: multiple + note: 有无迭代 + range: 1 +- field: category + range: "" +- field: hasProduct + range: 1 +- field: progress + range: "0.00" +- field: deleted + range: "0" +- field: vision + range: rnd +... diff --git a/module/company/test/zen/loadproject.php b/module/company/test/zen/loadproject.php new file mode 100755 index 0000000000..2019dda907 --- /dev/null +++ b/module/company/test/zen/loadproject.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +id->range('1-10'); +$table->name->range('项目1,项目2,项目3,项目4,项目5,项目6,项目7,项目8,项目9,项目10'); +$table->code->range('PRJ001,PRJ002,PRJ003,PRJ004,PRJ005,PRJ006,PRJ007,PRJ008,PRJ009,PRJ010'); +$table->type->range('project'); +$table->status->range('wait{2},doing{5},suspended{1},closed{2}'); +$table->deleted->range('0'); +$table->project->range('0'); +$table->vision->range('rnd'); +$table->acl->range('open{6},private{4}'); +$table->gen(10); + +su('admin'); + +$companyTest = new companyTest(); + +r(count($companyTest->loadProjectTest())) && p() && e('11'); // 测试步骤1:正常情况加载项目数量验证 +r($companyTest->loadProjectTest()) && p('1') && e('项目1'); // 测试步骤2:检查第一个项目名称 +r($companyTest->loadProjectTest()) && p('0') && e('项目'); // 测试步骤3:检查默认项目标签 +r($companyTest->loadProjectTest()) && p('8') && e('项目8'); // 测试步骤4:检查第八个项目名称 +r($companyTest->loadProjectTest()) && p('7') && e('项目7'); // 测试步骤5:检查第七个项目名称 \ No newline at end of file