CreateByBatchesTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace Tests\Services\StationTaskMaterialBoxService;
  3. use App\Batch;
  4. use App\Order;
  5. use App\OrderCommodity;
  6. use App\Services\StationTaskMaterialBoxService;
  7. use Tests\TestCase;
  8. use App\StationTaskMaterialBox;
  9. use App\Traits\TestMockSubServices;
  10. class CreateByBatchesTest extends TestCase
  11. {
  12. use TestMockSubServices;
  13. /** @var StationTaskMaterialBoxService $service */
  14. public $service;
  15. private $data;
  16. private $batchAmount=2;
  17. private $orderAmount=2;
  18. private $materialBoxAmount=2;
  19. function setUp(): void
  20. {
  21. parent::setUp();
  22. $this->service = app('StationTaskMaterialBoxService');
  23. $this->data['batches']
  24. = factory(Batch::class, $this->batchAmount)
  25. ->create();
  26. $this->data['orders']
  27. = factory(Order::class, $this->orderAmount)
  28. ->create([
  29. 'batch_id'=>(function(){
  30. if(!isset($this->data['i_batch_id_orders'])){
  31. $this->data['i_batch_id_orders']=$this->batchAmount;
  32. }
  33. $this->data['i_batch_id_orders']++;
  34. if($this->data['i_batch_id_orders']>=$this->batchAmount)$this->data['i_batch_id_orders']=0;
  35. return $this->data['batches'][$this->data['i_batch_id_orders']];
  36. })()
  37. ]);
  38. $this->data['stationTaskMaterialBoxes']
  39. = factory(StationTaskMaterialBox::class, $this->materialBoxAmount)
  40. ->create();
  41. $this->data['orderCommodities']
  42. = factory(OrderCommodity::class, $this->materialBoxAmount)
  43. ->create([
  44. 'order_id'=>(function(){
  45. if(!isset($this->data['i_order_id_orderCommodities'])){
  46. $this->data['i_order_id_orderCommodities']=$this->batchAmount;
  47. }
  48. $this->data['i_order_id_orderCommodities']++;
  49. if($this->data['i_order_id_orderCommodities']>=$this->batchAmount)$this->data['i_order_id_orderCommodities']=0;
  50. return $this->data['orders'][$this->data['i_order_id_orderCommodities']];
  51. })(),
  52. 'location'=>
  53. ]);
  54. }
  55. public function testReturned()
  56. {
  57. $this->service->createByBatches();
  58. $this->assertTrue(true);
  59. }
  60. function tearDown(): void
  61. {
  62. StationTaskMaterialBox::query()
  63. ->whereIn('id',data_get($this->data['stationTaskMaterialBoxes'],'*.id')??[])
  64. ->delete();
  65. parent::tearDown();
  66. }
  67. }