GodOpenHandlerTest.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. namespace Tests\Unit\AppGame;
  3. use App\Module\Farm\Enums\BUFF_TYPE;
  4. use Tests\TestCase;
  5. use Uraus\Kku\Request\RequestGodOpen;
  6. /**
  7. * 神像开启Handler测试
  8. */
  9. class GodOpenHandlerTest extends TestCase
  10. {
  11. /**
  12. * 测试RequestGodOpen包含物品ID
  13. */
  14. public function testRequestGodOpenWithItemId()
  15. {
  16. $request = new RequestGodOpen();
  17. // 测试设置神像ID
  18. $request->setGodId(BUFF_TYPE::HARVEST_GOD->value);
  19. $this->assertEquals(BUFF_TYPE::HARVEST_GOD->value, $request->getGodId());
  20. // 测试设置物品ID
  21. $request->setItemId(1001);
  22. $this->assertEquals(1001, $request->getItemId());
  23. }
  24. /**
  25. * 测试RequestGodOpen默认值
  26. */
  27. public function testRequestGodOpenDefaultValues()
  28. {
  29. $request = new RequestGodOpen();
  30. // 测试默认值
  31. $this->assertEquals(0, $request->getGodId());
  32. $this->assertEquals(0, $request->getItemId());
  33. }
  34. /**
  35. * 测试不同神像类型的请求
  36. */
  37. public function testDifferentGodTypes()
  38. {
  39. $godTypes = [
  40. BUFF_TYPE::HARVEST_GOD->value,
  41. BUFF_TYPE::RAIN_GOD->value,
  42. BUFF_TYPE::WEED_KILLER_GOD->value,
  43. BUFF_TYPE::PEST_CLEANER_GOD->value
  44. ];
  45. foreach ($godTypes as $godType) {
  46. $request = new RequestGodOpen();
  47. $request->setGodId($godType);
  48. $request->setItemId(1000 + $godType); // 假设物品ID为1001-1004
  49. $this->assertEquals($godType, $request->getGodId());
  50. $this->assertEquals(1000 + $godType, $request->getItemId());
  51. }
  52. }
  53. /**
  54. * 测试物品ID验证逻辑
  55. */
  56. public function testItemIdValidation()
  57. {
  58. $request = new RequestGodOpen();
  59. // 测试有效的物品ID
  60. $validItemIds = [1, 100, 1000, 9999];
  61. foreach ($validItemIds as $itemId) {
  62. $request->setItemId($itemId);
  63. $this->assertEquals($itemId, $request->getItemId());
  64. $this->assertTrue($request->getItemId() > 0);
  65. }
  66. // 测试无效的物品ID(0或负数)
  67. $invalidItemIds = [0, -1, -100];
  68. foreach ($invalidItemIds as $itemId) {
  69. $request->setItemId($itemId);
  70. $this->assertEquals($itemId, $request->getItemId());
  71. $this->assertFalse($request->getItemId() > 0);
  72. }
  73. }
  74. /**
  75. * 测试请求数据的完整性
  76. */
  77. public function testRequestDataIntegrity()
  78. {
  79. $request = new RequestGodOpen();
  80. // 设置完整的请求数据
  81. $godId = BUFF_TYPE::HARVEST_GOD->value;
  82. $itemId = 1001;
  83. $request->setGodId($godId);
  84. $request->setItemId($itemId);
  85. // 验证数据完整性
  86. $this->assertEquals($godId, $request->getGodId());
  87. $this->assertEquals($itemId, $request->getItemId());
  88. // 验证这是一个完整的神像开启请求
  89. $this->assertTrue($request->getGodId() > 0);
  90. $this->assertTrue($request->getItemId() > 0);
  91. }
  92. /**
  93. * 测试边界值
  94. */
  95. public function testBoundaryValues()
  96. {
  97. $request = new RequestGodOpen();
  98. // 测试最大值(假设使用int64)
  99. $maxValue = PHP_INT_MAX;
  100. $request->setGodId($maxValue);
  101. $request->setItemId($maxValue);
  102. $this->assertEquals($maxValue, $request->getGodId());
  103. $this->assertEquals($maxValue, $request->getItemId());
  104. // 测试最小值
  105. $minValue = 0;
  106. $request->setGodId($minValue);
  107. $request->setItemId($minValue);
  108. $this->assertEquals($minValue, $request->getGodId());
  109. $this->assertEquals($minValue, $request->getItemId());
  110. }
  111. }