CreateByBatchesTest.php 2.7 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'=>$this->getTargetIdCirculately($this->data['batches'])
  30. ]);
  31. $this->data['materialBoxes']
  32. = factory(StationTaskMaterialBox::class, $this->materialBoxAmount)
  33. ->create();
  34. $this->data['orderCommodities']
  35. = factory(OrderCommodity::class, $this->materialBoxAmount)
  36. ->create([
  37. 'order_id'=>(function(){
  38. if(!isset($this->data['i_order_id_orderCommodities'])){
  39. $this->data['i_order_id_orderCommodities']=$this->batchAmount;
  40. }
  41. $this->data['i_order_id_orderCommodities']++;
  42. if($this->data['i_order_id_orderCommodities']>=$this->batchAmount)$this->data['i_order_id_orderCommodities']=0;
  43. return $this->data['orders'][$this->data['i_order_id_orderCommodities']];
  44. })(),
  45. 'location'=>(function(){
  46. if(!isset($this->data['i_materialBoxes_orderCommodities'])){
  47. $this->data['i_materialBoxes_orderCommodities']=$this->batchAmount;
  48. }
  49. $this->data['i_materialBoxes_orderCommodities']++;
  50. if($this->data['i_materialBoxes_orderCommodities']>=$this->batchAmount)$this->data['i_materialBoxes_orderCommodities']=0;
  51. return $this->data['materialBoxes'][$this->data['i_materialBoxes_orderCommodities']];
  52. })(),
  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. }