diff --git a/module/block/test/lib/zen.class.php b/module/block/test/lib/zen.class.php index 90dfafd50b..ec198940fd 100644 --- a/module/block/test/lib/zen.class.php +++ b/module/block/test/lib/zen.class.php @@ -1083,4 +1083,42 @@ class blockZenTest extends baseTest return $result; } + + /** + * Test printWaterfallRiskBlock method. + * + * @param object $block 区块对象 + * @access public + * @return object + */ + public function printWaterfallRiskBlockTest(object $block) + { + global $tester; + $tester->session->project = $block->params->projectID ?? 1; + + $this->invokeArgs('printWaterfallRiskBlock', array($block)); + if(dao::isError()) return dao::getError(); + + $view = $this->instance->view; + $result = new stdClass(); + if(isset($view->risks)) + { + $result->count = count($view->risks); + $index = 1; + foreach($view->risks as $risk) + { + $result->$index = $risk; + $index++; + } + } + else + { + $result->count = 0; + } + + $result->hasUsers = isset($view->users) ? 1 : 0; + $result->usersCount = isset($view->users) ? count($view->users) : 0; + + return $result; + } } diff --git a/module/block/test/zen/printwaterfallriskblock.php b/module/block/test/zen/printwaterfallriskblock.php new file mode 100755 index 0000000000..69425a3ef3 --- /dev/null +++ b/module/block/test/zen/printwaterfallriskblock.php @@ -0,0 +1,90 @@ +#!/usr/bin/env php +id->range('1-10'); +$project->name->range('Project1,Project2,Project3,Project4,Project5,Project6,Project7,Project8,Project9,Project10'); +$project->type->range('project'); +$project->model->range('waterfall'); +$project->status->range('doing'); +$project->gen(10); + +$risk = zenData('risk'); +$risk->project->range('1{5},2{3},3{2}'); +$risk->status->range('active{7},closed{3}'); +$risk->pri->range('1-4'); +$risk->gen(10); + +zenData('user')->gen(10); + +su('admin'); + +$blockTest = new blockZenTest(); + +$block1 = new stdClass(); +$block1->params = new stdClass(); +$block1->params->projectID = 1; +$block1->params->type = 'active'; +$block1->params->count = 20; +$block1->params->orderBy = 'id_desc'; + +$block2 = new stdClass(); +$block2->params = new stdClass(); +$block2->params->projectID = 2; +$block2->params->type = 'active'; +$block2->params->count = 20; +$block2->params->orderBy = 'id_desc'; + +$block3 = new stdClass(); +$block3->params = new stdClass(); +$block3->params->projectID = 3; +$block3->params->type = 'active'; +$block3->params->count = 20; +$block3->params->orderBy = 'id_desc'; + +$block4 = new stdClass(); +$block4->params = new stdClass(); +$block4->params->projectID = 1; +$block4->params->type = 'all'; +$block4->params->count = 20; +$block4->params->orderBy = 'id_desc'; + +$block5 = new stdClass(); +$block5->params = new stdClass(); +$block5->params->projectID = 999; +$block5->params->type = 'active'; +$block5->params->count = 20; +$block5->params->orderBy = 'id_desc'; + +r($blockTest->printWaterfallRiskBlockTest($block1)) && p('count,hasUsers,1:status,1:project') && e('5,1,active,1'); +r($blockTest->printWaterfallRiskBlockTest($block2)) && p('count,hasUsers,1:status,1:project') && e('3,1,active,2'); +r($blockTest->printWaterfallRiskBlockTest($block3)) && p('count,hasUsers,1:status,1:project') && e('2,1,active,3'); +r($blockTest->printWaterfallRiskBlockTest($block4)) && p('count,hasUsers') && e('5,1'); +r($blockTest->printWaterfallRiskBlockTest($block5)) && p('count,hasUsers') && e('0,1'); \ No newline at end of file