CreateByBatchesTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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['materialBoxes']
  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'=>(function(){
  53. if(!isset($this->data['i_materialBoxes_orderCommodities'])){
  54. $this->data['i_materialBoxes_orderCommodities']=$this->batchAmount;
  55. }
  56. $this->data['i_materialBoxes_orderCommodities']++;
  57. if($this->data['i_materialBoxes_orderCommodities']>=$this->batchAmount)$this->data['i_materialBoxes_orderCommodities']=0;
  58. return $this->data['materialBoxes'][$this->data['i_materialBoxes_orderCommodities']];
  59. })(),
  60. ]);
  61. }
  62. public function testReturned()
  63. {
  64. $this->service->createByBatches();
  65. $this->assertTrue(true);
  66. }
  67. function tearDown(): void
  68. {
  69. StationTaskMaterialBox::query()
  70. ->whereIn('id',data_get($this->data['stationTaskMaterialBoxes'],'*.id')??[])
  71. ->delete();
  72. parent::tearDown();
  73. }
  74. }