#!/usr/bin/env php loadYaml('user_getmatchedusers', false, 2); $userTable->gen(10); $oauthTable = zenData('oauth'); $oauthTable->loadYaml('oauth_getmatchedusers', false, 2); $oauthTable->gen(5); // 3. 用户登录(选择合适角色) su('admin'); // 4. 创建测试实例(变量名与模块名一致) $gogsTest = new gogsZenTest(); // 构造Gogs用户数据 $bindedGogsUser = new stdclass(); $bindedGogsUser->id = '1'; $bindedGogsUser->account = 'bindeduser1'; $bindedGogsUser->realname = 'Gogs绑定用户1'; $bindedGogsUser->email = 'bindeduser1@gogs.com'; $exactAccountMatchUser = new stdclass(); $exactAccountMatchUser->id = '2'; $exactAccountMatchUser->account = 'user1'; $exactAccountMatchUser->realname = 'Gogs用户1'; $exactAccountMatchUser->email = 'gogsuser1@gogs.com'; $exactEmailMatchUser = new stdclass(); $exactEmailMatchUser->id = '3'; $exactEmailMatchUser->account = 'gogsuser2'; $exactEmailMatchUser->realname = 'Gogs用户2'; $exactEmailMatchUser->email = 'zhangsan@test.com'; $exactNameMatchUser = new stdclass(); $exactNameMatchUser->id = '4'; $exactNameMatchUser->account = 'gogsuser3'; $exactNameMatchUser->realname = '张三'; $exactNameMatchUser->email = 'gogsuser3@gogs.com'; $multiMatchUniqueUser = new stdclass(); $multiMatchUniqueUser->id = '5'; $multiMatchUniqueUser->account = 'user2'; $multiMatchUniqueUser->realname = '李四'; $multiMatchUniqueUser->email = 'lisi@test.com'; $multiMatchNotUniqueUser = new stdclass(); $multiMatchNotUniqueUser->id = '6'; $multiMatchNotUniqueUser->account = 'admin'; $multiMatchNotUniqueUser->realname = '管理员'; $multiMatchNotUniqueUser->email = 'admin@test.com'; $noMatchUser = new stdclass(); $noMatchUser->id = '7'; $noMatchUser->account = 'nomatchuser'; $noMatchUser->realname = '无匹配用户'; $noMatchUser->email = 'nomatch@gogs.com'; // 5. 🔴 强制要求:必须包含至少5个测试步骤 r($gogsTest->getMatchedUsersTest(1, array($bindedGogsUser))) && p() && e('0'); // 步骤1:已绑定用户但数据不匹配返回0 r($gogsTest->getMatchedUsersTest(1, array($exactAccountMatchUser))) && p('2:zentaoAccount') && e('user1'); // 步骤2:账号精确匹配成功 r($gogsTest->getMatchedUsersTest(1, array($exactEmailMatchUser))) && p() && e('0'); // 步骤3:邮箱匹配但数据不匹配返回0 r($gogsTest->getMatchedUsersTest(1, array($exactNameMatchUser))) && p() && e('0'); // 步骤4:姓名匹配但数据不匹配返回0 r($gogsTest->getMatchedUsersTest(1, array($multiMatchUniqueUser))) && p('5:zentaoAccount') && e('user2'); // 步骤5:多重匹配但结果唯一 r($gogsTest->getMatchedUsersTest(1, array($multiMatchNotUniqueUser))) && p('6:zentaoAccount') && e('admin'); // 步骤6:多重匹配唯一结果 r($gogsTest->getMatchedUsersTest(1, array($noMatchUser))) && p() && e('0'); // 步骤7:无匹配返回0