InsertTest.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace Tests\Services\OrderService;
  3. use App\Order;
  4. use App\Services\OrderService;
  5. use Carbon\Carbon;
  6. use Illuminate\Foundation\Testing\RefreshDatabase;
  7. use Illuminate\Foundation\Testing\WithFaker;
  8. use Tests\TestCase;
  9. class InsertTest extends TestCase
  10. {
  11. /** @var OrderService $service */
  12. private $service;
  13. private $data = [];
  14. protected function setUp(): void
  15. {
  16. parent::setUp(); // TODO: Change the autogenerated stub
  17. $this->service = app('OrderService');
  18. $orders = factory(Order::class)->times(3)->make();
  19. $this->data['orders'] = $orders->map(function ($item){
  20. return [
  21. 'batch_id' =>$item->batch_id,
  22. 'owner_id' =>$item->owner_id,
  23. 'status' =>$item->status,
  24. 'created_at' =>$item->created_at,
  25. 'code' =>$item->code,
  26. 'shop_id' =>$item->shop_id,
  27. 'client_code' =>$item->client_code,
  28. 'logistic_id' =>$item->logistic_id,
  29. 'consignee_name' =>$item->consignee_name,
  30. 'consignee_phone' =>$item->consignee_phone,
  31. 'province' =>$item->province,
  32. 'city' =>$item->city,
  33. 'district' =>$item->district,
  34. 'address' =>$item->address,
  35. 'warehouse_id' =>$item->warehouse_id,
  36. 'wms_edittime' =>$item->wms_edittime,
  37. 'wms_status' =>$item->wms_status,
  38. 'order_type' =>$item->order_type,
  39. ];
  40. })->toArray();
  41. }
  42. /**
  43. * @test
  44. */
  45. public function insert()
  46. {
  47. $insert_params = array_chunk($this->data['orders'],1000);
  48. foreach ($insert_params as $insert_param){
  49. $this->service->insert($insert_param);
  50. }
  51. $this->data['order_codes'] = data_get($this->data['orders'],'*.code');
  52. $orders = Order::query()->whereIn('code',$this->data['order_codes'])->get();
  53. $this->assertEquals($orders->count(),count($this->data['orders']));
  54. }
  55. protected function tearDown(): void
  56. {
  57. Order::query()->whereIn('code',$this->data['order_codes'])->delete();
  58. parent::tearDown(); // TODO: Change the autogenerated stub
  59. }
  60. }