CreateByBatchesTest.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace Tests\Services\StationTaskCommodityService;
  3. use App\Batch;
  4. use App\Order;
  5. use App\OrderCommodity;
  6. use App\Services\StationTaskCommodityService;
  7. use App\Services\StationTaskService;
  8. use App\StationTask;
  9. use App\Traits\TestMockSubServices;
  10. use Tests\TestCase;
  11. use App\StationTaskCommodity;
  12. class CreateByBatchesTest extends TestCase
  13. {
  14. use TestMockSubServices;
  15. /** @var StationTaskCommodityService $service */
  16. public $service;
  17. /** @var StationTaskService $service */
  18. private $stationTaskService;
  19. private $data;
  20. private $batchAmount=2;
  21. private $orderAmount=4;
  22. private $orderCommodityAmount=8;
  23. function setUp(): void
  24. {
  25. parent::setUp();
  26. $this->service = app('StationTaskCommodityService');
  27. $this->stationTaskService = app('StationTaskService');
  28. $this->data['stationTask'] =
  29. $this->stationTaskService->create($this->batchAmount);
  30. $this->data['batches'] =
  31. factory(Batch::class,
  32. $this->batchAmount)
  33. ->create([
  34. 'status'=>'未处理',
  35. ]);
  36. $this->data['orders'] =
  37. factory(Order::class)
  38. ->createMany($this->makeArray($this->orderAmount,[
  39. 'status'=>'未处理',
  40. 'batch_id' => function(){return $this->getTargetFieldCirculately($this->data['batches']);}
  41. ]));
  42. $this->data['orderCommodities'] =
  43. factory(OrderCommodity::class)
  44. ->createMany($this->makeArray($this->orderCommodityAmount,[
  45. 'order_id' => function(){return $this->getTargetFieldCirculately($this->data['orders']);}
  46. ]));
  47. }
  48. public function testReturned()
  49. {
  50. $this->data['stationTaskCommodities']=
  51. $this->service->createByBatches(
  52. $this->data['batches'],
  53. $this->data['stationTask']);
  54. $this->assertEquals($this->orderCommodityAmount, $this->data['stationTaskCommodities']->count());
  55. $this->assertNotFalse(array_search($this->data['stationTaskCommodities'][0]['id'],
  56. data_get($this->data['stationTaskCommodities'][0]['stationTask']['stationTaskCommodities'],'*.id')));
  57. }
  58. function tearDown(): void
  59. {
  60. StationTaskCommodity::query()
  61. ->whereIn('id',data_get($this->data['stationTaskCommodities'],'*.id')??[])
  62. ->delete();
  63. StationTask::query()
  64. ->whereIn('id',data_get($this->data['stationTask'],'*.id')??[])
  65. ->delete();
  66. Batch::query()
  67. ->whereIn('id',data_get($this->data['batches'],'*.id')??[])
  68. ->delete();
  69. Order::query()
  70. ->whereIn('id',data_get($this->data['orders'],'*.id')??[])
  71. ->delete();
  72. OrderCommodity::query()
  73. ->whereIn('id',data_get($this->data['orderCommodities'],'*.id')??[])
  74. ->delete();
  75. parent::tearDown();
  76. }
  77. }