VegetealHandlerSimpleTest.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace Tests\Unit\Pet;
  3. use App\Module\AppGame\Handler\Pet\VegetealHandler;
  4. use PHPUnit\Framework\TestCase;
  5. use Uraus\Kku\Request\RequestPetVegeteal;
  6. use Uraus\Kku\Response;
  7. /**
  8. * VegetealHandler简单单元测试
  9. */
  10. class VegetealHandlerSimpleTest extends TestCase
  11. {
  12. /**
  13. * 测试Handler基本实例化
  14. */
  15. public function test_handler_instantiation()
  16. {
  17. $response = new Response();
  18. $handler = new VegetealHandler($response);
  19. $this->assertInstanceOf(VegetealHandler::class, $handler);
  20. $this->assertFalse($handler->needLogin()); // 我们设置为false用于测试
  21. }
  22. /**
  23. * 测试请求对象创建
  24. */
  25. public function test_request_creation()
  26. {
  27. $request = new RequestPetVegeteal();
  28. $request->setUserId(39170);
  29. $request->setPetId(36);
  30. $request->setPlantId(562);
  31. $this->assertEquals(39170, $request->getUserId());
  32. $this->assertEquals(36, $request->getPetId());
  33. $this->assertEquals(562, $request->getPlantId());
  34. }
  35. /**
  36. * 测试响应对象创建
  37. */
  38. public function test_response_creation()
  39. {
  40. $response = new \Uraus\Kku\Response\ResponsePetVegeteal();
  41. $this->assertInstanceOf(\Uraus\Kku\Response\ResponsePetVegeteal::class, $response);
  42. }
  43. /**
  44. * 测试Handler的基本属性
  45. */
  46. public function test_handler_properties()
  47. {
  48. $response = new Response();
  49. $handler = new VegetealHandler($response);
  50. // 测试user_id设置
  51. $handler->user_id = 123;
  52. $this->assertEquals(123, $handler->user_id);
  53. // 测试needLogin方法
  54. $this->assertFalse($handler->needLogin());
  55. }
  56. /**
  57. * 测试protobuf序列化
  58. */
  59. public function test_protobuf_serialization()
  60. {
  61. $request = new RequestPetVegeteal();
  62. $request->setUserId(39170);
  63. $request->setPetId(36);
  64. $request->setPlantId(562);
  65. // 测试序列化为JSON
  66. $jsonString = $request->serializeToJsonString();
  67. $this->assertIsString($jsonString);
  68. // 验证JSON包含正确的字段
  69. $data = json_decode($jsonString, true);
  70. $this->assertEquals('39170', $data['userId']);
  71. $this->assertEquals('36', $data['petId']);
  72. $this->assertEquals('562', $data['plantId']);
  73. }
  74. }