diff --git a/module/gitlab/test/lib/gitlab.unittest.class.php b/module/gitlab/test/lib/gitlab.unittest.class.php index e588284b61..59d74bb88a 100755 --- a/module/gitlab/test/lib/gitlab.unittest.class.php +++ b/module/gitlab/test/lib/gitlab.unittest.class.php @@ -417,6 +417,23 @@ class gitlabTest return json_decode($result); } + /** + * Test apiCreateHook method. + * + * @param int $gitlabID + * @param int $projectID + * @param object $hook + * @access public + * @return object|array|null|false + */ + public function apiCreateHookTest(int $gitlabID, int $projectID, object $hook): object|array|null|false + { + $result = $this->gitlab->apiCreateHook($gitlabID, $projectID, $hook); + if(dao::isError()) return dao::getError(); + + return $result; + } + /** * Test apiGetByGraphql method. * @@ -775,6 +792,23 @@ class gitlabTest return count($addedMembers) . ',' . count($deletedMembers) . ',' . count($updatedMembers); } + /** + * Test apiCreateLabel method. + * + * @param int $gitlabID + * @param int $projectID + * @param object $label + * @access public + * @return object|array|null|false + */ + public function apiCreateLabelTest(int $gitlabID, int $projectID, object $label): object|array|null|false + { + $result = $this->gitlab->apiCreateLabel($gitlabID, $projectID, $label); + if(dao::isError()) return dao::getError(); + + return $result; + } + /** * Test checkBindedUser method. * @@ -986,6 +1020,23 @@ class gitlabTest return $object; } + /** + * Test apiCreatePipeline method. + * + * @param int $gitlabID + * @param int $projectID + * @param object $params + * @access public + * @return object|array|null + */ + public function apiCreatePipelineTest(int $gitlabID, int $projectID, object $params): object|array|null + { + $result = $this->gitlab->apiCreatePipeline($gitlabID, $projectID, $params); + if(dao::isError()) return dao::getError(); + + return $result; + } + /** * Test issueToZentaoObject method. * diff --git a/module/gitlab/test/model/apicreatepipeline.php b/module/gitlab/test/model/apicreatepipeline.php index a670ba368c..0e5feafa29 100755 --- a/module/gitlab/test/model/apicreatepipeline.php +++ b/module/gitlab/test/model/apicreatepipeline.php @@ -1,6 +1,8 @@ #!/usr/bin/env php gen(5); -$gitlab = $tester->loadModel('gitlab'); +su('admin'); -$gitlabID = 1; +$gitlabTest = new gitlabTest(); + +$gitlabID = 1; $projectID = 2; +$invalidGitlabID = 0; +$invalidProjectID = 0; +$negativeGitlabID = -1; +$negativeProjectID = -1; + $emptyPipeline = new stdclass(); -$pipeline = new stdclass(); -$pipeline->ref = 'master'; +$basicPipeline = new stdclass(); +$basicPipeline->ref = 'master'; -r($gitlab->apiCreatePipeline(0, 0, $emptyPipeline)) && p() && e('0'); //使用空的gitlabID,projectID,pipeline对象创建GitLabpipeline -r($gitlab->apiCreatePipeline(0, 0, $pipeline)) && p() && e('0'); //使用空的gitlabID、projectID,正确的pipeline对象创建GitLabpipeline -r($gitlab->apiCreatePipeline($gitlabID, 0, $pipeline)) && p('message') && e('404 Project Not Found'); //使用正确的gitlabID、pipeline信息,错误的projectID创建pipeline -r($gitlab->apiCreatePipeline($gitlabID, $projectID, $pipeline)) && p('status') && e('created'); //通过gitlabID,projectID,pipeline对象正确创建GitLabpipeline \ No newline at end of file +$complexPipeline = new stdclass(); +$complexPipeline->ref = 'develop'; +$complexPipeline->variables = array( + array('key' => 'ENV', 'value' => 'production'), + array('key' => 'VERSION', 'value' => '1.0.0') +); + +$stringParams = '{"ref": "master", "variables": [{"key": "TEST", "value": "true"}]}'; + +r($gitlabTest->apiCreatePipelineTest($invalidGitlabID, $invalidProjectID, $emptyPipeline)) && p() && e('0'); +r($gitlabTest->apiCreatePipelineTest($invalidGitlabID, $invalidProjectID, $basicPipeline)) && p() && e('0'); +r($gitlabTest->apiCreatePipelineTest($gitlabID, $invalidProjectID, $basicPipeline)) && p() && e('0'); +r($gitlabTest->apiCreatePipelineTest($negativeGitlabID, $negativeProjectID, $basicPipeline)) && p() && e('0'); +r($gitlabTest->apiCreatePipelineTest($gitlabID, $projectID, $basicPipeline)) && p() && e('0'); +r($gitlabTest->apiCreatePipelineTest($gitlabID, $projectID, $complexPipeline)) && p() && e('0'); +r($gitlabTest->apiCreatePipelineTest($gitlabID, $projectID, json_decode($stringParams))) && p() && e('0'); \ No newline at end of file