ReportChargeTest.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  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. }
  19. private function prepareData() {
  20. $promotionId = 100;
  21. $optimizerId = 5;
  22. foreach(range(1, 150) as $i) {
  23. $orders[] = [
  24. 'id' => 10000 + $i,
  25. 'uid' => 1000 + $i,
  26. 'promotion_id' => $promotionId,
  27. 'user_id' => $optimizerId,
  28. 'price' => rand(40, 70),
  29. 'pay_product_id' => 1,
  30. 'status' => 'PAID',
  31. 'trade_no' => uniqid(),
  32. 'created_at' => '2023-05-19 14:44:01',
  33. 'updated_at' => date('Y-m-d H:i:s'),
  34. ];
  35. $ranses[] = [
  36. 'uid' => 1000 + $i,
  37. 'ranse_id' => 100,
  38. 'callback' => uniqid(),
  39. 'ranse_start_at' => '2023-05-19 14:44:01',
  40. 'ranse_end_at' => '2023-05-19 15:44:01',
  41. 'advertiser_id' => '1234568',
  42. 'adv_promotion_id' => '234',
  43. 'report_result' => '[]',
  44. 'created_at' => date('Y-m-d H:i:s'),
  45. 'updated_at' => date('Y-m-d H:i:s'),
  46. ];
  47. }
  48. DB::table('orders')->where('id', '>=', 10001)->delete();
  49. DB::table('orders')->insert($orders);
  50. DB::table('callback_report_ranse_record')->delete();
  51. DB::table('callback_report_charge_record')->delete();
  52. DB::table('callback_report_ranse_record')->insert($ranses);
  53. }
  54. }