diff --git a/module/gitlab/test/lib/zen.class.php b/module/gitlab/test/lib/zen.class.php index a54b1feef8..5219ba7205 100644 --- a/module/gitlab/test/lib/zen.class.php +++ b/module/gitlab/test/lib/zen.class.php @@ -75,11 +75,27 @@ class gitlabZenTest extends baseTest { global $app; - /* 创建 gitlabZen 实例 */ - $zenInstance = $app->loadTarget('gitlab', '', 'zen'); + /* 加载 control 和 zen 类 */ + if(!class_exists('gitlab')) + { + require_once $app->getModulePath('', 'gitlab') . 'control.php'; + } + if(!class_exists('gitlabZen')) + { + require_once $app->getModulePath('', 'gitlab') . 'zen.php'; + } + + /* 使用反射创建 gitlabZen 实例,跳过构造函数 */ + $reflection = new ReflectionClass('gitlabZen'); + $zenInstance = $reflection->newInstanceWithoutConstructor(); + + /* 初始化必要的属性 */ + $zenInstance->app = $app; + $zenInstance->config = $app->config; + $zenInstance->lang = $app->lang; + $zenInstance->dao = $app->loadClass('dao'); /* 通过反射调用 getProjectMemberData 方法 */ - $reflection = new ReflectionClass('gitlabZen'); $method = $reflection->getMethod('getProjectMemberData'); $method->setAccessible(true); diff --git a/module/gitlab/test/zen/getprojectmemberdata.php b/module/gitlab/test/zen/getprojectmemberdata.php new file mode 100755 index 0000000000..617132b817 --- /dev/null +++ b/module/gitlab/test/zen/getprojectmemberdata.php @@ -0,0 +1,65 @@ +#!/usr/bin/env php +setMethodName('test'); + +$gitlabTest = new gitlabZenTest(); + +/* 准备测试数据 */ +$member1 = new stdClass(); +$member1->id = 1; +$member1->access_level = 30; +$member1->expires_at = '2025-12-31'; + +$member2 = new stdClass(); +$member2->id = 2; +$member2->access_level = 40; +$member2->expires_at = '2025-12-31'; + +$member3 = new stdClass(); +$member3->id = 3; +$member3->access_level = 50; +$member3->expires_at = '2025-12-31'; + +$member2Updated = new stdClass(); +$member2Updated->id = 2; +$member2Updated->access_level = 50; +$member2Updated->expires_at = '2025-12-31'; + +/* 准备绑定用户和账号数据 */ +$bindedUsers = array('user1' => 1, 'user2' => 2); +$accounts = array('user1', 'user2'); +$originalUsers = array('user1', 'user2'); + +r($gitlabTest->getProjectMemberDataTest(array($member1), array(1 => $member1, 2 => $member2), $bindedUsers, $accounts, $originalUsers)) && p('0:0:user_id') && e('2'); +r($gitlabTest->getProjectMemberDataTest(array($member1), array(1 => $member1, 2 => $member2), $bindedUsers, $accounts, $originalUsers)) && p('0:0:access_level') && e('40'); +r($gitlabTest->getProjectMemberDataTest(array($member1), array(1 => $member1, 2 => $member2), $bindedUsers, $accounts, $originalUsers)) && p('0:0:expires_at') && e('2025-12-31'); +r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(1 => $member1, 2 => $member2Updated), $bindedUsers, $accounts, $originalUsers)) && p('2:0:user_id') && e('2'); +r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(1 => $member1, 2 => $member2Updated), $bindedUsers, $accounts, $originalUsers)) && p('2:0:access_level') && e('50'); +r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(1 => $member1), array('user1' => 1, 'user2' => 2), array('user1'), array('user1', 'user2'))) && p('1:0') && e('2'); +r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(2 => $member2Updated, 3 => $member3), array('user1' => 1, 'user2' => 2), array('user2'), array('user1', 'user2'))) && p('0:0:user_id') && e('3'); +r($gitlabTest->getProjectMemberDataTest(array($member1, $member2), array(2 => $member2Updated, 3 => $member3), array('user1' => 1, 'user2' => 2), array('user2'), array('user1', 'user2'))) && p('1:0') && e('1'); \ No newline at end of file