Login4ursHandlerTest.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. * Login4urs Handler HTTP测试
  10. *
  11. * 测试Login4ursHandler在真实HTTP环境中的工作情况
  12. */
  13. class Login4ursHandlerTest extends ProtoRequestTest
  14. {
  15. /**
  16. * 测试Login4urs登录成功
  17. */
  18. public function testLogin4ursSuccess()
  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->hasPublicLogin4Urs());
  27. $loginResponse = $response->getPublicLogin4Urs();
  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=== Login4urs测试结果 ===\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. * 创建Login4urs请求
  45. *
  46. * @return Message
  47. */
  48. public function create_request_protobuf(): Message
  49. {
  50. $request = new Request();
  51. $login4ursRequest = new Request\RequestPublicLogin4urs();
  52. $login4ursRequest->setMobile('18600648353');
  53. $login4ursRequest->setPassword('a123123');
  54. $request->setPublicLogin4Urs($login4ursRequest);
  55. return $request;
  56. }
  57. }