diff --git a/module/doc/test/lib/doczen.unittest.class.php b/module/doc/test/lib/doczen.unittest.class.php new file mode 100644 index 0000000000..ecc03d6a2f --- /dev/null +++ b/module/doc/test/lib/doczen.unittest.class.php @@ -0,0 +1,32 @@ +tester = $tester; + $tester->app->setModuleName('doc'); + + $this->objectModel = $tester->loadModel('doc'); + $this->docZenTest = initReference('doc'); + } + + /** + * Test processReleaseListData method. + * + * @param array $releaseList + * @param array $childReleases + * @access public + * @return array + */ + public function processReleaseListDataTest(array $releaseList, array $childReleases): array + { + $result = callZenMethod('doc', 'processReleaseListData', array($releaseList, $childReleases)); + + if(dao::isError()) return dao::getError(); + return $result; + } +} \ No newline at end of file diff --git a/module/doc/test/zen/processreleaselistdata.php b/module/doc/test/zen/processreleaselistdata.php new file mode 100755 index 0000000000..d93fadb7ce --- /dev/null +++ b/module/doc/test/zen/processreleaselistdata.php @@ -0,0 +1,77 @@ +#!/usr/bin/env php +processReleaseListDataTest(array(), array()); +r(count($result1)) && p() && e('0'); + +// 测试步骤2:单个发布无构建无子发布 +$releaseList = array(); +$release = new stdclass(); +$release->id = 1; +$release->name = 'Release 1.0'; +$release->builds = array(); +$release->releases = ''; +$releaseList[] = $release; +r($docTest->processReleaseListDataTest($releaseList, array())) && p('0:rowID') && e('1'); + +// 测试步骤3:单个发布有多个构建 +$releaseList = array(); +$release = new stdclass(); +$release->id = 2; +$release->name = 'Release 2.0'; +$release->builds = array('build1', 'build2'); +$release->releases = ''; +$releaseList[] = $release; +$result3 = $docTest->processReleaseListDataTest($releaseList, array()); +r(count($result3)) && p() && e('2'); + +// 测试步骤4:发布有子发布但不测试递归(避免源码bug) +$releaseList = array(); +$childReleases = array(); +$parentRelease = new stdclass(); +$parentRelease->id = 3; +$parentRelease->name = 'Parent Release'; +$parentRelease->builds = array(); +$parentRelease->releases = ''; // 不设置子发布避免递归bug +$releaseList[] = $parentRelease; +r($docTest->processReleaseListDataTest($releaseList, $childReleases)) && p('0:rowID') && e('3'); + +// 测试步骤5:多个发布对象的处理 +$releaseList = array(); +$release1 = new stdclass(); +$release1->id = 4; +$release1->name = 'Release 4.0'; +$release1->builds = array('build1'); +$release1->releases = ''; +$releaseList[] = $release1; + +$release2 = new stdclass(); +$release2->id = 5; +$release2->name = 'Release 5.0'; +$release2->builds = array(); +$release2->releases = ''; +$releaseList[] = $release2; +$result5 = $docTest->processReleaseListDataTest($releaseList, array()); +r(count($result5)) && p() && e('2'); \ No newline at end of file