Login4uHandlerTest.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace App\Module\AppGame\Tests\Public;
  3. use Google\Protobuf\Internal\Message;
  4. use Tests\Unit\ProtoRequestTest;
  5. use Uraus\Kku\Request;
  6. use Uraus\Kku\Response;
  7. use Uraus\Kku\Common\RESPONSE_CODE;
  8. /**
  9. * Login4u Handler HTTP测试
  10. *
  11. * 测试Login4uHandler在真实HTTP环境中的工作情况
  12. */
  13. class Login4uHandlerTest extends ProtoRequestTest
  14. {
  15. /**
  16. * 测试Login4u登录成功
  17. */
  18. public function testLogin4uSuccess()
  19. {
  20. $response = $this->protobufRequest();
  21. // 验证响应类型
  22. $this->assertInstanceOf(Response::class, $response);
  23. // 验证响应状态码
  24. $this->assertEquals(RESPONSE_CODE::SUCCESS, $response->getCode());
  25. // 验证有登录响应数据
  26. $this->assertTrue($response->hasPublicLogin4U());
  27. $loginResponse = $response->getPublicLogin4U();
  28. // 验证token不为空
  29. $this->assertNotEmpty($loginResponse->getToken());
  30. // 验证用户状态
  31. $this->assertFalse($loginResponse->getIsProhibit());
  32. // 验证最后登录信息
  33. $this->assertTrue($loginResponse->hasLastLoginInfo());
  34. $lastLoginInfo = $loginResponse->getLastLoginInfo();
  35. $this->assertGreaterThan(0, $lastLoginInfo->getLastLoginTimes());
  36. // 输出响应信息用于调试
  37. echo "\n=== Login4u测试结果 ===\n";
  38. echo "Token: " . $loginResponse->getToken() . "\n";
  39. echo "IsProhibit: " . ($loginResponse->getIsProhibit() ? 'true' : 'false') . "\n";
  40. echo "LastLoginTimes: " . $lastLoginInfo->getLastLoginTimes() . "\n";
  41. echo "完整响应: " . $response->serializeToJsonString() . "\n";
  42. }
  43. /**
  44. * 创建Login4u请求(使用有效的userKey)
  45. *
  46. * @return Message
  47. */
  48. public function create_request_protobuf(): Message
  49. {
  50. // 首先通过手机号密码获取有效的userKey
  51. $ursService = \ThirdParty\Urs\Services\UrsService::login('18600648353', 'a123123');
  52. $userKey = $ursService['userKey'];
  53. $request = new Request();
  54. $login4uRequest = new Request\RequestPublicLogin4u();
  55. $login4uRequest->setKeylogin($userKey);
  56. $request->setPublicLogin4U($login4uRequest);
  57. return $request;
  58. }
  59. }