ReportChargeTest.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace Tests\Jobs\Callback;
  3. use App\Jobs\Callback\ReportCharge;
  4. use App\Service\Util\Support\Trace\TraceContext;
  5. use Illuminate\Support\Facades\DB;
  6. use PHPUnit\Framework\TestCase;
  7. class ReportChargeTest extends \Tests\TestCase
  8. {
  9. public function testHandle()
  10. {
  11. $this->prepareData();
  12. foreach (range(1, 150) as $i) {
  13. $traceContext = new TraceContext();
  14. $reportCharge = new ReportCharge(['uid' => 1000 + $i, 'orderId' => 10000 + $i,
  15. 'traceInfo' => $traceContext->getTraceInfo()]);
  16. $reportCharge->handle();
  17. }
  18. foreach (range(151, 163) as $i) {
  19. $traceContext = new TraceContext();
  20. $reportCharge = new ReportCharge(['uid' => 1000 + $i -150, 'orderId' => 10000 + $i,
  21. 'traceInfo' => $traceContext->getTraceInfo()]);
  22. $reportCharge->handle();
  23. }
  24. }
  25. private function prepareData() {
  26. $promotionId = 100;
  27. $optimizerId = 5;
  28. foreach(range(1, 150) as $i) {
  29. $orders[] = [
  30. 'id' => 10000 + $i,
  31. 'uid' => 1000 + $i,
  32. 'promotion_id' => $promotionId,
  33. 'user_id' => $optimizerId,
  34. 'price' => rand(40, 70),
  35. 'pay_product_id' => 1,
  36. 'status' => 'PAID',
  37. 'trade_no' => uniqid(),
  38. 'created_at' => '2023-05-19 14:44:01',
  39. 'updated_at' => date('Y-m-d H:i:s'),
  40. ];
  41. $ranses[] = [
  42. 'uid' => 1000 + $i,
  43. 'ranse_id' => 100,
  44. 'callback' => uniqid(),
  45. 'ranse_start_at' => '2023-05-19 14:44:01',
  46. 'ranse_end_at' => '2023-05-19 15:44:01',
  47. 'advertiser_id' => '1234568',
  48. 'adv_promotion_id' => '234',
  49. 'report_result' => '[]',
  50. 'created_at' => date('Y-m-d H:i:s'),
  51. 'updated_at' => date('Y-m-d H:i:s'),
  52. 'ranse_ip' =>'192.168.1.123',
  53. 'optimizer_uid' => 5
  54. ];
  55. }
  56. foreach (range(151, 163) as $i) {
  57. $orders[] = [
  58. 'id' => 10000 + $i,
  59. 'uid' => 1000 + $i - 150,
  60. 'promotion_id' => $promotionId,
  61. 'user_id' => $optimizerId,
  62. 'price' => rand(40, 70),
  63. 'pay_product_id' => 1,
  64. 'status' => 'PAID',
  65. 'trade_no' => uniqid(),
  66. 'created_at' => '2023-05-19 14:'.(44 + rand(5, 10)),
  67. 'updated_at' => date('Y-m-d H:i:s'),
  68. ];
  69. }
  70. DB::table('orders')->where('id', '>=', 10001)->delete();
  71. DB::table('orders')->insert($orders);
  72. DB::table('callback_report_ranse_record')->delete();
  73. DB::table('callback_report_charge_record')->delete();
  74. DB::table('callback_report_ranse_record')->insert($ranses);
  75. }
  76. }