Merge branch 'sprint/autoTest_liumengyi_product' into 'master'

* Add auto test of product.

See merge request easycorp/zentaopms!2551
This commit is contained in:
孙广明
2022-03-25 07:33:06 +00:00
16 changed files with 644 additions and 2 deletions
+1
View File
@@ -1430,6 +1430,7 @@ class productModel extends model
$projects = $this->dao->select('t1.project, t1.product')->from(TABLE_PROJECTPRODUCT)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id')
->where('t2.deleted')->eq(0)
->andWhere('t2.type')->eq('project')
->fetchGroup('product', 'project');
}
if(empty($teams))
+279 -1
View File
@@ -741,7 +741,55 @@ class productTest
public function batchGetStoryStageTest($stories)
{
$objects = $this->objectModel->batchGetStoryStage($stories);
a($objects);
foreach($objects as $id => $object) $stages[$id] = $object[0]->stage;
if(dao::isError())
{
return dao::getError();
}
else
{
return $stages;
}
}
/**
* Test get project stats by product.
*
* @param int $productID
* @param string $browseType
* @access public
* @return array
*/
public function getProjectStatsByProductTest($productID, $browseType = 'all')
{
$objects = $this->objectModel->getProjectStatsByProduct($productID, $browseType);
foreach($objects as $object) $projects[$object->id] = $object->name;
if(dao::isError())
{
return dao::getError();
}
else
{
return isset($projects) ? $projects : array();
}
}
/**
* Test get executions by product and project.
*
* @param int $productID
* @param int $projectID
* @access public
* @return array
*/
public function getExecutionPairsByProductTest($productID, $projectID = 0)
{
$objects = $this->objectModel->getExecutionPairsByProduct($productID, 0, 'id_asc', $projectID);
if(dao::isError())
{
@@ -752,4 +800,234 @@ class productTest
return $objects;
}
}
/**
* Test get all executions by product.
*
* @param int $productID
* @access public
* @return array
*/
public function getAllExecutionPairsByProductTest($productID)
{
$objects = $this->objectModel->getAllExecutionPairsByProduct($productID);
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects;
}
}
/**
* Test get roadmap of a proejct.
*
* @param int $productID
* @access public
* @return array
*/
public function getRoadmapTest($productID)
{
$objects = $this->objectModel->getRoadmap($productID);
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects;
}
}
/**
* Test process roadmap.
*
* @param int $productID
* @access public
* @return array
*/
public function processRoadmapTest($productID)
{
global $tester;
$releases = $tester->loadModel('release')->getList($productID, '0');
$roadmapGroups = array('2022' => array($releases));
$objects = $this->objectModel->processRoadmap($roadmapGroups);
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects;
}
}
/**
* Test get team members of a product from projects.
*
* @param int $productID
* @access public
* @return array
*/
public function getTeamMemberPairsTest($productID)
{
$product = $this->objectModel->getByID($productID);
$objects = $this->objectModel->getTeamMemberPairs($product);
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects;
}
}
/**
* Test get product stat by id.
*
* @param int $productID
* @access public
* @return array
*/
public function getStatByIDTest($productID)
{
$objects = $this->objectModel->getStatByID($productID);
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects;
}
}
/**
* Test get product stats.
*
* @access public
* @return array
*/
public function getStatsTest()
{
$objects = $this->objectModel->getStats();
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects;
}
}
/**
* Test stats for product kanban.
*
* @param string $type
* @param bool $getCount
* @access public
* @return array
*/
public function getStats4KanbanTest($type, $getCount = false)
{
$objects = $this->objectModel->getStats4Kanban();
if(dao::isError())
{
return dao::getError();
}
else
{
return $getCount ? count($objects[$type]) : $objects[$type];
}
}
/**
* Test get product line pairs.
*
* @param int $programID
* @access public
* @return array
*/
public function getLinePairsTest($programID)
{
$objects = $this->objectModel->getLinePairs($programID);
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects;
}
}
/**
* Test statistics program data.
*
* @param object $productStats
* @param int $index
* @access public
* @return array
*/
public function statisticProgramTest($productStats, $index)
{
$objects = $this->objectModel->statisticProgram($productStats);
if(dao::isError())
{
return dao::getError();
}
else
{
return $objects[$index][$index]['products'];
}
}
/**
* Test statistics product data.
*
* @param object $product
* @access public
* @return array
*/
public function statisticDataTest($product)
{
if($product->line)
{
/* Line name. */
$productStructure[$product->program][$product->line]['lineName'] = $product->lineName;
$data = $this->objectModel->statisticData('line', $productStructure, $product);
}
if($product->program)
{
/* Init vars. */
/* Program name. */
$productStructure[$product->program]['programName'] = $product->programName;
$data = $this->objectModel->statisticData('program', $productStructure, $product);
}
if(dao::isError())
{
return dao::getError();
}
else
{
return $data;
}
}
}
+49
View File
@@ -0,0 +1,49 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->batchGetStoryStage();
cid=1
pid=1
*/
$story1 = new stdclass();
$story1->id = 1;
$story2 = new stdclass();
$story2->id = 2;
$story3 = new stdclass();
$story3->id = 3;
$story4 = new stdclass();
$story4->id = 4;
$story5 = new stdclass();
$story5->id = 5;
$story6 = new stdclass();
$story6->id = 6;
$story7 = new stdclass();
$story7->id = 7;
$story8 = new stdclass();
$story8->id = 8;
$story9 = new stdclass();
$story9->id = 9;
$stories1 = array($story1, $story2, $story3);
$stories2 = array($story4, $story5, $story6);
$stories3 = array($story7, $story8, $story9);
$product = new productTest('admin');
r($product->batchGetStoryStageTest($stories1)) && p('1;2;3') && e('wait;planned;projected'); // 测试获取需求1 2 3的阶段
r($product->batchGetStoryStageTest($stories2)) && p('4;5;6') && e('developing;developed;testing'); // 测试获取需求4 5 6的阶段
r($product->batchGetStoryStageTest($stories3)) && p('7;8;9') && e('tested;verified;released'); // 测试获取需求7 8 9的阶段
-1
View File
@@ -9,7 +9,6 @@ title=测试 productModel->batchUpdate();
cid=1
pid=1
*/
$names = array('1' => '批量修改产品1', '2' => '正常产品2', '3' => '正常产品3');
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getAllExecutionPairsByProduct();
cid=1
pid=1
*/
$productIDList = array('1', '2', '3', '4', '5', '1000001');
$product = new productTest('admin');
r($product->getAllExecutionPairsByProductTest($productIDList[0])) && p('101,111,191,201,281,291,371,381,461,471,551,561,641,651') && e('项目1/迭代1,项目11/迭代11,项目1/迭代91,项目11/迭代101,项目1/迭代181,项目11/迭代191,项目1/迭代271,项目11/迭代281,项目1/迭代361,项目11/迭代371,项目1/迭代451,项目11/迭代461,项目1/迭代541,项目11/迭代551'); // 测试获取产品1的执行信息
r($product->getAllExecutionPairsByProductTest($productIDList[1])) && p('102,112,192,202,282,292,372,382,462,472,552,562,642,652') && e('项目2/迭代2,项目12/迭代12,项目2/迭代92,项目12/迭代102,项目2/迭代182,项目12/迭代192,项目2/迭代272,项目12/迭代282,项目2/迭代362,项目12/迭代372,项目2/迭代452,项目12/迭代462,项目2/迭代542,项目12/迭代552'); // 测试获取产品2的执行信息
r($product->getAllExecutionPairsByProductTest($productIDList[2])) && p('103,113,193,203,283,293,373,383,463,473,553,563,643,653') && e('项目3/迭代3,项目13/迭代13,项目3/迭代93,项目13/迭代103,项目3/迭代183,项目13/迭代193,项目3/迭代273,项目13/迭代283,项目3/迭代363,项目13/迭代373,项目3/迭代453,项目13/迭代463,项目3/迭代543,项目13/迭代553'); // 测试获取产品3的执行信息
r($product->getAllExecutionPairsByProductTest($productIDList[3])) && p('104,114,194,204,284,294,374,384,464,474,554,564,644,654') && e('项目4/迭代4,项目14/迭代14,项目4/迭代94,项目14/迭代104,项目4/迭代184,项目14/迭代194,项目4/迭代274,项目14/迭代284,项目4/迭代364,项目14/迭代374,项目4/迭代454,项目14/迭代464,项目4/迭代544,项目14/迭代554'); // 测试获取产品4的执行信息
r($product->getAllExecutionPairsByProductTest($productIDList[4])) && p('105,115,195,205,285,295,375,385,465,475,555,565,645,655') && e('项目5/迭代5,项目15/迭代15,项目5/迭代95,项目15/迭代105,项目5/迭代185,项目15/迭代195,项目5/迭代275,项目15/迭代285,项目5/迭代365,项目15/迭代375,项目5/迭代455,项目15/迭代465,项目5/迭代545,项目15/迭代555'); // 测试获取产品5的执行信息
r($product->getAllExecutionPairsByProductTest($productIDList[5])) && p('0:') && e(''); // 测试获取不存在产品的执行信息
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getExecutionPairsByProduct();
cid=1
pid=1
*/
$productIDList = array('1', '2', '3', '4', '5', '1000001');
$projectIDList = array('11', '21', '12', '22', '13', '23', '14', '24', '15', '25');
$product = new productTest('admin');
r($product->getExecutionPairsByProductTest($productIDList[0])) && p('101;111') && e('项目1/迭代1;项目11/迭代11'); // 测试获取产品1的信息
r($product->getExecutionPairsByProductTest($productIDList[0], $projectIDList[0])) && p('101;111') && e('迭代1;'); // 测试获取产品1 项目11的信息
r($product->getExecutionPairsByProductTest($productIDList[0], $projectIDList[1])) && p('101;111') && e(';迭代11'); // 测试获取产品1 项目21的信息
r($product->getExecutionPairsByProductTest($productIDList[1])) && p('102;112') && e('项目2/迭代2;项目12/迭代12'); // 测试获取产品2的信息
r($product->getExecutionPairsByProductTest($productIDList[1], $projectIDList[2])) && p('102;112') && e('迭代2;'); // 测试获取产品2 项目12的信息
r($product->getExecutionPairsByProductTest($productIDList[1], $projectIDList[3])) && p('102;112') && e(';迭代12'); // 测试获取产品2 项目22的信息
r($product->getExecutionPairsByProductTest($productIDList[2])) && p('103;113') && e('项目3/迭代3;项目13/迭代13'); // 测试获取产品3的信息
r($product->getExecutionPairsByProductTest($productIDList[2], $projectIDList[4])) && p('103;113') && e('迭代3;'); // 测试获取产品3 项目13的信息
r($product->getExecutionPairsByProductTest($productIDList[2], $projectIDList[5])) && p('103;113') && e(';迭代13'); // 测试获取产品3 项目23的信息
r($product->getExecutionPairsByProductTest($productIDList[3])) && p('104;114') && e('项目4/迭代4;项目14/迭代14'); // 测试获取产品4的信息
r($product->getExecutionPairsByProductTest($productIDList[3], $projectIDList[6])) && p('104;114') && e('迭代4;'); // 测试获取产品4 项目14的信息
r($product->getExecutionPairsByProductTest($productIDList[3], $projectIDList[7])) && p('104;114') && e(';迭代14'); // 测试获取产品4 项目24的信息
r($product->getExecutionPairsByProducttest($productIDList[4])) && p('105;115') && e('项目5/迭代5;项目15/迭代15'); // 测试获取产品5的信息
r($product->getExecutionPairsByProducttest($productIDList[4], $projectIDList[8])) && p('105;115') && e('迭代5;'); // 测试获取产品5 项目15的信息
r($product->getExecutionPairsByProducttest($productIDList[4], $projectIDList[9])) && p('105;115') && e(';迭代15'); // 测试获取产品5 项目25的信息
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getLinePairs();
cid=1
pid=1
*/
$programIDList = array('1', '2', '3', '4', '5', '1000001');
$product = new productTest('admin');
r($product->getLinePairsTest($programIDList[0])) && p('1,11') && e('产品线1,产品线11'); // 测试获取程序集1的信息
r($product->getLinePairsTest($programIDList[1])) && p('2,12') && e('产品线2,产品线12'); // 测试获取程序集2的信息
r($product->getLinePairsTest($programIDList[2])) && p('3,13') && e('产品线3,产品线13'); // 测试获取程序集3的信息
r($product->getLinePairsTest($programIDList[3])) && p('4,14') && e('产品线4,产品线14'); // 测试获取程序集4的信息
r($product->getLinePairsTest($programIDList[4])) && p('5,15') && e('产品线5,产品线15'); // 测试获取程序集5的信息
r($product->getLinePairsTest($programIDList[5])) && p('1,11') && e('0'); // 测试获取不存在程序集的信息
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getProjectStatsByProduct();
cid=1
pid=1
*/
$productIDList = array('1', '2', '3', '4', '5', '1000001');
$browseType = array('unclosed', 'unplan', 'allstory', 'assignedtome', 'openedbyme', 'reviewedbyme', 'reviewbyme', 'closedbyme', 'draftstory', 'activestory', 'changedstory', 'willclose', 'closedstory');
$product = new productTest('admin');
r($product->getProjectStatsByProductTest($productIDList[0])) && p('11;21') && e('项目1;项目11'); // 测试获取产品1的 browseType为all的信息
r($product->getProjectStatsByProductTest($productIDList[0], $browseType[0])) && p() && e('0'); // 测试获取产品1的 browseType为unclosed的信息
r($product->getProjectStatsByProductTest($productIDList[0], $browseType[1])) && p() && e('0'); // 测试获取产品1的 browseType为unplan的信息
r($product->getProjectStatsByProductTest($productIDList[0], $browseType[2])) && p() && e('0'); // 测试获取产品1的 browseType为allstory的信息
r($product->getProjectStatsByProductTest($productIDList[1])) && p('12;22') && e('项目2;项目12'); // 测试获取产品2的 browseType为all的信息
r($product->getProjectStatsByProductTest($productIDList[1], $browseType[3])) && p() && e('0'); // 测试获取产品2的 browseType为assignedtome的信息
r($product->getProjectStatsByProductTest($productIDList[1], $browseType[4])) && p() && e('0'); // 测试获取产品2的 browseType为openedbyme的信息
r($product->getProjectStatsByProductTest($productIDList[1], $browseType[5])) && p() && e('0'); // 测试获取产品2的 browseType为reviewedbyme的信息
r($product->getProjectStatsByProductTest($productIDList[2])) && p('13;23') && e('项目3;项目13'); // 测试获取产品3的 browseType为all的信息
r($product->getProjectStatsByProductTest($productIDList[2], $browseType[6])) && p() && e('0'); // 测试获取产品3的 browseType为reviewbyme的信息
r($product->getProjectStatsByProductTest($productIDList[2], $browseType[7])) && p() && e('0'); // 测试获取产品3的 browseType为closedbyme的信息
r($product->getProjectStatsByProductTest($productIDList[2], $browseType[8])) && p() && e('0'); // 测试获取产品3的 browseType为draftstory的信息
r($product->getProjectStatsByProductTest($productIDList[3])) && p('14;24') && e('项目4;项目14'); // 测试获取产品4的 browseType为all的信息
r($product->getProjectStatsByProductTest($productIDList[3], $browseType[9])) && p() && e('0'); // 测试获取产品4的 browseType为activestory的信息
r($product->getProjectStatsByProductTest($productIDList[3], $browseType[10])) && p() && e('0'); // 测试获取产品4的 browseType为changedstory的信息
r($product->getProjectStatsByProductTest($productIDList[4])) && p('15;25') && e('项目5;项目15'); // 测试获取产品5的 browseType为all的信息
r($product->getProjectStatsByProductTest($productIDList[4], $browseType[11])) && p() && e('0'); // 测试获取产品5的 browseType为willclose的信息
r($product->getProjectStatsByProductTest($productIDList[4], $browseType[12])) && p() && e('0'); // 测试获取产品5的 browseType为closedstory的信息
r($product->getProjectStatsByProductTest($productIDList[5])) && p() && e('0'); // 测试获取不存在产品的信息
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getRoadmap();
cid=1
pid=1
*/
$productIDList = array('1', '2', '3', '4', '5', '1000001');
$product = new productTest('admin');
r($product->getRoadmapTest($productIDList[0])) && p('total') && e('4'); // 测试获取产品1的roadmap数量
r($product->getRoadmapTest($productIDList[1])) && p('total') && e('1'); // 测试获取产品2的roadmap数量
r($product->getRoadmapTest($productIDList[2])) && p('total') && e('0'); // 测试获取产品3的roadmap数量
r($product->getRoadmapTest($productIDList[3])) && p('total') && e('0'); // 测试获取产品4的roadmap数量
r($product->getRoadmapTest($productIDList[4])) && p('total') && e('0'); // 测试获取产品5的roadmap数量
r($product->getRoadmapTest($productIDList[5])) && p('total') && e('0'); // 测试获取不存在产品的roadmap数量
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getStatByID();
cid=1
pid=1
*/
$productIDList = array('1', '2', '3', '4', '5', '1000001');
$product = new productTest('admin');
r($product->getStatByIDTest($productIDList[0])) && p('name,plans,releases,builds,cases,projects,executions,bugs,docs,progress') && e('正常产品1,0,4,2,4,2,14,9,1,0'); // 测试获取产品1的stat信息
r($product->getStatByIDTest($productIDList[1])) && p('name,plans,releases,builds,cases,projects,executions,bugs,docs,progress') && e('正常产品2,0,1,2,4,2,14,4,1,0'); // 测试获取产品2的stat信息
r($product->getStatByIDTest($productIDList[2])) && p('name,plans,releases,builds,cases,projects,executions,bugs,docs,progress') && e('正常产品3,0,0,2,4,2,14,4,1,0'); // 测试获取产品3的stat信息
r($product->getStatByIDTest($productIDList[3])) && p('name,plans,releases,builds,cases,projects,executions,bugs,docs,progress') && e('正常产品4,0,0,2,4,2,14,4,1,0'); // 测试获取产品4的stat信息
r($product->getStatByIDTest($productIDList[4])) && p('name,plans,releases,builds,cases,projects,executions,bugs,docs,progress') && e('正常产品5,0,0,2,4,2,14,4,1,0'); // 测试获取产品5的stat信息
r($product->getStatByIDTest($productIDList[5])) && p('name,plans,releases,builds,cases,projects,executions,bugs,docs,progress') && e('0'); // 测试获取不存在产品的stat信息
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getStats();
cid=1
pid=1
*/
$product = new productTest('admin');
r($product->getStatsTest()) && p('0:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品1,0,4,9,9,0,0,0,0,0'); // 测试获取产品1的stats信息
r($product->getStatsTest()) && p('1:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品2,0,1,4,4,0,0,0,0,0'); // 测试获取产品2的stats信息
r($product->getStatsTest()) && p('2:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品3,0,0,4,4,0,0,0,0,0'); // 测试获取产品3的stats信息
r($product->getStatsTest()) && p('3:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品4,0,0,4,4,0,0,0,0,0'); // 测试获取产品4的stats信息
r($product->getStatsTest()) && p('4:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品5,0,0,4,4,0,0,0,0,0'); // 测试获取产品5的stats信息
r($product->getStatsTest()) && p('5:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品6,0,0,4,4,0,0,0,0,25'); // 测试获取产品6的stats信息
r($product->getStatsTest()) && p('6:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品7,0,0,4,4,0,0,0,0,25'); // 测试获取产品7的stats信息
r($product->getStatsTest()) && p('7:name,plans,releases,bugs,unResolved,closedBugs,fixedBugs,thisWeekBugs,assignToNull,progress') && e('正常产品8,0,0,4,4,0,0,0,0,25'); // 测试获取产品8的stats信息
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getStats4Kanban();
cid=1
pid=1
*/
$product = new productTest('admin');
$typeList = array('programList', 'productList', 'planList', 'projectList', 'executionList', 'projectProduct', 'projectLatestExecutions', 'hourList', 'releaseList');
r($product->getStats4KanbanTest($typeList[0])) && p('1,2,3') && e('项目集1,项目集2,项目集3'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[1])) && p('1:name;2:name;3:name') && e('正常产品1;正常产品2;正常产品3'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[3])) && p('13:name;14:name;15:name') && e('项目3;项目4;项目5'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[6])) && p('14:name;16:name;22:name') && e('迭代544;迭代546;迭代552'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[7])) && p('612:progress,totalReal;618:progress,totalReal') && e('44.44,9;100,10'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[2], true)) && p() && e('14'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[4], true)) && p() && e('22'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[5], true)) && p() && e('72'); // 测试获取产品的看板stats信息
r($product->getStats4KanbanTest($typeList[8], true)) && p() && e('2'); // 测试获取产品的看板stats信息
+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->getTeamMemberPairs();
cid=1
pid=1
*/
$productIDList = array('1', '2', '3', '4', '5', '1000001');
$product = new productTest('admin');
r($product->getTeamMemberPairsTest($productIDList[0])) && p('po1,test1,dev1,admin,pm92,po2,user12') && e('po1,test1,dev1,0,1,2,3'); // 测试获取产品1的信息
r($product->getTeamMemberPairsTest($productIDList[1])) && p('po2,test2,dev2,pm93,user3,po3,user13') && e('po2,test2,dev2,0,1,2,3'); // 测试获取产品2的信息
r($product->getTeamMemberPairsTest($productIDList[2])) && p('po3,test3,dev3,pm94,user4,po4,user14') && e('po3,test3,dev3,0,1,2,3'); // 测试获取产品3的信息
r($product->getTeamMemberPairsTest($productIDList[3])) && p('po4,test4,dev4,pm95,user5,po5,user15') && e('po4,test4,dev4,0,1,2,3'); // 测试获取产品4的信息
r($product->getTeamMemberPairsTest($productIDList[4])) && p('po5,test5,dev5,pm96,user6,po6,user16') && e('po5,test5,dev5,0,1,2,3'); // 测试获取产品5的信息
+22
View File
@@ -0,0 +1,22 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->processRoadmap();
cid=1
pid=1
*/
$productIDList = array('1', '2', '3', '4', '5', '1000001');
$product = new productTest('admin');
r($product->processRoadmapTest($productIDList[0])) && p('0:name;1:name;2:name;3:name') && e('产品1正常的发布1;产品1正常的发布3;产品1正常的里程碑发布5;产品1停止维护的里程碑发布6'); // 测试获取产品1下的发布roadmap
r($product->processRoadmapTest($productIDList[1])) && p('0:name') && e('产品2发布!@#$$$%^&*()测试发布的名称到底可以有多长asdlfkjla8'); // 测试获取产品2下的发布roadmap
r($product->processRoadmapTest($productIDList[2])) && p() && e('0'); // 测试获取产品3下的发布roadmap
r($product->processRoadmapTest($productIDList[3])) && p() && e('0'); // 测试获取产品4下的发布roadmap
r($product->processRoadmapTest($productIDList[4])) && p() && e('0'); // 测试获取产品5下的发布roadmap
r($product->processRoadmapTest($productIDList[5])) && p() && e('0'); // 测试获取不存在产品下的发布roadmap
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->statisticData();
cid=1
pid=1
*/
$product = new productTest('admin');
$productStats = $product->getStatsTest();
r($product->statisticDataTest($productStats[1])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集1,2,2,2,2,4,0,0,1'); // 测试获取统计数据集中产品2的信息
r($product->statisticDataTest($productStats[2])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集2,2,2,2,2,4,0,0,0'); // 测试获取统计数据集中产品3的信息
r($product->statisticDataTest($productStats[3])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集3,2,2,2,2,4,0,0,0'); // 测试获取统计数据集中产品4的信息
r($product->statisticDataTest($productStats[4])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集4,2,2,2,2,4,0,0,0'); // 测试获取统计数据集中产品5的信息
r($product->statisticDataTest($productStats[5])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集5,2,0,2,1,4,0,0,0'); // 测试获取统计数据集中产品6的信息
r($product->statisticDataTest($productStats[6])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集6,2,0,2,1,4,0,0,0'); // 测试获取统计数据集中产品7的信息
r($product->statisticDataTest($productStats[7])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集7,2,0,2,1,4,0,0,0'); // 测试获取统计数据集中产品8的信息
r($product->statisticDataTest($productStats[8])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集8,2,0,2,1,4,0,1,0'); // 测试获取统计数据集中产品9的信息
r($product->statisticDataTest($productStats[9])) && p('programName,totalRequirements,activeRequirements,totalStories,activeStories,unResolvedBugs,closedBugs,plans,releases') && e('项目集9,2,0,2,1,4,0,3,0'); // 测试获取统计数据集中产品10的信息
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env php
<?php
include dirname(dirname(dirname(__FILE__))) . '/lib/init.php';
include dirname(dirname(dirname(__FILE__))) . '/class/product.class.php';
/**
title=productModel->statisticProgram();
cid=1
pid=1
*/
$product = new productTest('admin');
$productStats = $product->getStatsTest();
r($product->statisticProgramTest($productStats, '0')) && p('1:name,plans,releases,bugs') && e('正常产品1,0,4,9'); // 测试获取统计数据集中产品1的stats信息
r($product->statisticProgramTest($productStats, '0')) && p('12:name,plans,releases,bugs') && e('正常产品12,0,0,3'); // 测试获取统计数据集中产品12的stats信息
r($product->statisticProgramTest($productStats, '0')) && p('45:name,plans,releases,bugs') && e('多分支产品45,2,0,3'); // 测试获取统计数据集中产品45的stats信息
r($product->statisticProgramTest($productStats, '0')) && p('89:name,plans,releases,bugs') && e('多平台产品89,0,0,3'); // 测试获取统计数据集中产品89的stats信息
r($product->statisticProgramTest($productStats, '0')) && p('100:name,plans,releases,bugs') && e('多平台产品100,0,0,3'); // 测试获取统计数据集中产品100的stats信息
r($product->statisticProgramTest($productStats, '1')) && p('2:name,plans,releases,bugs') && e('正常产品2,0,1,4'); // 测试获取统计数据集中产品2的stats信息
r($product->statisticProgramTest($productStats, '1')) && p('13:name,plans,releases,bugs') && e('正常产品13,0,0,3'); // 测试获取统计数据集中产品13的stats信息
r($product->statisticProgramTest($productStats, '1')) && p('46:name,plans,releases,bugs') && e('多分支产品46,2,0,3'); // 测试获取统计数据集中产品46的stats信息
r($product->statisticProgramTest($productStats, '1')) && p('90:name,plans,releases,bugs') && e('多平台产品90,0,0,3'); // 测试获取统计数据集中产品90的stats信息
r($product->statisticProgramTest($productStats, '2')) && p('3:name,plans,releases,bugs') && e('正常产品3,0,0,4'); // 测试获取统计数据集中产品3的stats信息
r($product->statisticProgramTest($productStats, '3')) && p('4:name,plans,releases,bugs') && e('正常产品4,0,0,4'); // 测试获取统计数据集中产品4的stats信息
r($product->statisticProgramTest($productStats, '4')) && p('5:name,plans,releases,bugs') && e('正常产品5,0,0,4'); // 测试获取统计数据集中产品5的stats信息
r($product->statisticProgramTest($productStats, '5')) && p('6:name,plans,releases,bugs') && e('正常产品6,0,0,4'); // 测试获取统计数据集中产品6的stats信息
r($product->statisticProgramTest($productStats, '6')) && p('7:name,plans,releases,bugs') && e('正常产品7,0,0,4'); // 测试获取统计数据集中产品7的stats信息
r($product->statisticProgramTest($productStats, '7')) && p('8:name,plans,releases,bugs') && e('正常产品8,0,0,4'); // 测试获取统计数据集中产品8的stats信息
r($product->statisticProgramTest($productStats, '8')) && p('9:name,plans,releases,bugs') && e('正常产品9,1,0,4'); // 测试获取统计数据集中产品9的stats信息