CreateByBatchesTest.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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\Traits\TestMockSubServices;
  9. use Tests\TestCase;
  10. use App\StationTaskCommodity;
  11. class CreateByBatchesTest extends TestCase
  12. {
  13. use TestMockSubServices;
  14. /** @var StationTaskCommodityService $service */
  15. public $service;
  16. /** @var StationTaskService $service */
  17. private $stationTaskService;
  18. private $data;
  19. private $batchAmount=2;
  20. private $orderAmount=4;
  21. private $orderCommodityAmount=8;
  22. function setUp(): void
  23. {
  24. parent::setUp();
  25. $this->service = app('StationTaskCommodityService');
  26. $this->stationTaskService = app('StationTaskService');
  27. $this->data['stationTasks'] =
  28. $this->stationTaskService->create($this->batchAmount);
  29. $this->data['batches'] =
  30. factory(Batch::class,
  31. $this->batchAmount)
  32. ->create([
  33. 'status'=>'未处理',
  34. ]);
  35. $this->data['orders'] =
  36. factory(Order::class,
  37. $this->orderAmount)
  38. ->create([
  39. 'status'=>'未处理',
  40. 'batch_id'=>$this->getTargetIdCirculately($this->data['batches']),
  41. ]);
  42. $this->data['orderCommodities'] =
  43. factory(OrderCommodity::class,
  44. $this->orderCommodityAmount)
  45. ->create([
  46. 'order_id'=>$this->getTargetIdCirculately($this->data['orders']),
  47. ]);
  48. }
  49. public function testReturned()
  50. {
  51. $this->data['StationTaskCommodities']=
  52. $this->service->createByBatches(
  53. $this->data['batches'],
  54. $this->data['stationTasks']);
  55. $this->assertEquals($this->orderCommodityAmount, $this->data['StationTaskCommodities']->count());
  56. }
  57. function tearDown(): void
  58. {
  59. StationTaskCommodity::query()
  60. ->whereIn('id',data_get($this->data['StationTaskCommodities'],'*.id')??[])
  61. ->delete();
  62. parent::tearDown();
  63. }
  64. }