OpenHandlerTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. namespace App\Module\Mex\Tests;
  3. use App\Module\AppGame\Handler\Matchexchange\OpenHandler;
  4. use App\Module\Mex\Services\MexPriceConfigService;
  5. use Uraus\Kku\Request\RequestMatchexchangeOpen;
  6. use Uraus\Kku\Response\ResponseMatchexchangeOpen;
  7. /**
  8. * OpenHandler测试类
  9. */
  10. class OpenHandlerTest
  11. {
  12. /**
  13. * 测试获取开放交易物品列表
  14. */
  15. public static function testGetOpenItems()
  16. {
  17. echo "=== 测试获取开放交易物品列表 ===\n";
  18. try {
  19. // 1. 测试获取启用的价格配置
  20. echo "1. 获取启用的价格配置...\n";
  21. $enabledConfigs = MexPriceConfigService::getEnabledConfigs();
  22. echo "启用的价格配置数量: " . count($enabledConfigs) . "\n";
  23. if (!empty($enabledConfigs)) {
  24. echo "价格配置详情:\n";
  25. foreach ($enabledConfigs as $config) {
  26. echo " - 物品ID: {$config['item_id']}, 价格范围: {$config['price_range']}\n";
  27. }
  28. } else {
  29. echo "警告: 没有找到启用的价格配置\n";
  30. }
  31. // 2. 模拟Handler处理
  32. echo "\n2. 模拟Handler处理...\n";
  33. $itemIds = [];
  34. foreach ($enabledConfigs as $config) {
  35. $itemIds[] = $config['item_id'];
  36. }
  37. echo "提取的物品ID列表: " . json_encode($itemIds) . "\n";
  38. // 3. 验证响应格式
  39. echo "\n3. 验证响应格式...\n";
  40. $response = new ResponseMatchexchangeOpen();
  41. $response->setItemId($itemIds);
  42. $responseItemIds = $response->getItemId();
  43. echo "响应中的物品ID数量: " . count($responseItemIds) . "\n";
  44. echo "响应中的物品ID: " . json_encode(iterator_to_array($responseItemIds)) . "\n";
  45. echo "\n✅ 测试完成,功能正常\n";
  46. return true;
  47. } catch (\Exception $e) {
  48. echo "\n❌ 测试失败: " . $e->getMessage() . "\n";
  49. echo "错误堆栈: " . $e->getTraceAsString() . "\n";
  50. return false;
  51. }
  52. }
  53. /**
  54. * 运行所有测试
  55. */
  56. public static function runAll()
  57. {
  58. echo "开始运行OpenHandler测试...\n\n";
  59. $results = [];
  60. $results['testGetOpenItems'] = self::testGetOpenItems();
  61. echo "\n=== 测试结果汇总 ===\n";
  62. foreach ($results as $test => $result) {
  63. $status = $result ? '✅ 通过' : '❌ 失败';
  64. echo "{$test}: {$status}\n";
  65. }
  66. $passCount = array_sum($results);
  67. $totalCount = count($results);
  68. echo "\n总计: {$passCount}/{$totalCount} 个测试通过\n";
  69. return $passCount === $totalCount;
  70. }
  71. }