| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?php
- namespace App\Module\Test\Commands;
- use App\Module\ThirdParty\Models\ThirdPartyService as ServiceModel;
- use App\Module\User\Models\UserInfo;
- use Illuminate\Console\Command;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use ThirdParty\Urs\Webhook\UrsRegisterFarmUserWebhook;
- /**
- * 测试URS Webhook功能的命令
- */
- class TestUrsWebhookCommand extends Command
- {
- /**
- * 命令签名
- *
- * @var string
- */
- protected $signature = 'test:urs-webhook {--user-id=12345 : 测试用户ID} {--nickname=测试昵称 : 测试昵称}';
- /**
- * 命令描述
- *
- * @var string
- */
- protected $description = '测试URS注册用户Webhook的昵称和头像设置功能';
- /**
- * 执行命令
- */
- public function handle()
- {
- $userId = $this->option('user-id');
- $nickname = $this->option('nickname');
- $this->info("开始测试URS Webhook功能...");
- $this->info("测试用户ID: {$userId}");
- $this->info("测试昵称: {$nickname}");
- try {
- // 获取一个现有的服务记录或创建一个简单的模拟对象
- $service = ServiceModel::first();
- if (!$service) {
- $this->error("❌ 没有找到可用的服务记录,请先在数据库中创建一个服务记录");
- return;
- }
- // 创建测试请求
- $request = new Request();
- // 创建webhook实例
- $webhook = new UrsRegisterFarmUserWebhook($service->code, $request, $service);
- // 使用反射调用受保护的方法
- $reflection = new \ReflectionClass($webhook);
- $method = $reflection->getMethod('setUserNicknameAndAvatar');
- $method->setAccessible(true);
- // 清理可能存在的测试数据
- UserInfo::where('user_id', $userId)->delete();
- $this->info("执行设置昵称和头像...");
- // 执行方法
- $method->invoke($webhook, $userId, $nickname);
- // 验证结果
- $userInfo = UserInfo::where('user_id', $userId)->first();
- if ($userInfo) {
- $this->info("✅ 测试成功!");
- $this->info("用户ID: {$userInfo->user_id}");
- $this->info("昵称: {$userInfo->nickname}");
- $this->info("头像: {$userInfo->avatar}");
- // 验证头像范围
- $avatar = (int) $userInfo->avatar;
- if ($avatar >= 1 && $avatar <= 8) {
- $this->info("✅ 头像ID在正确范围内 (1-8)");
- } else {
- $this->error("❌ 头像ID不在正确范围内: {$avatar}");
- }
- // 验证昵称
- if ($userInfo->nickname === $nickname) {
- $this->info("✅ 昵称设置正确");
- } else {
- $this->error("❌ 昵称设置错误,期望: {$nickname},实际: {$userInfo->nickname}");
- }
- } else {
- $this->error("❌ 测试失败:未找到用户信息记录");
- }
- // 清理测试数据
- UserInfo::where('user_id', $userId)->delete();
- $this->info("测试完成,已清理测试数据");
- } catch (\Exception $e) {
- $this->error("❌ 测试失败:" . $e->getMessage());
- $this->error("错误详情:" . $e->getTraceAsString());
- }
- }
- }
|