service = app('StationTaskCommodityService'); $this->data['batches'] = factory(Batch::class, $this->batchAmount) ->create([ 'status'=>'未处理', ]); $this->data['orders'] = factory(Order::class, $this->orderAmount) ->create([ 'status'=>'未处理', 'batch_id'=>(function(){ if(!isset($this->data['temBatchId_orders'])){ $this->data['temBatchId_orders']=$this->batchAmount; } $this->data['temBatchId_orders']++; if($this->data['temBatchId_orders']>=$this->batchAmount)$this->data['temBatchId_orders']=0; return $this->data['batches'][$this->data['temBatchId_orders']]['id']; })(), ]); $this->data['orderBins'] = factory(OrderBin::class, $this->orderAmount) ->create([ 'order_id'=>(function(){ if(!isset($this->data['temOrderId_ordersBins'])){ $this->data['temOrderId_ordersBins']=-1; } $this->data['temOrderId_ordersBins']++; return $this->data['orders'][$this->data['temOrderId_ordersBins']]['id']; })(), 'number'=>(function(){ if(!isset($this->data['temNumber_ordersBins'])){ $this->data['temNumber_ordersBins']=-1; } $this->data['temNumber_ordersBins']++; return $this->data['temNumber_ordersBins']; })(), ]); $this->data['orderCommodities'] = factory(OrderCommodity::class, $this->orderCommodityAmount) ->create([ 'order_id'=>(function(){ if(!isset($this->data['temOrderId_orderCommodities'])){ $this->data['temOrderId_orderCommodities']=$this->orderAmount; } $this->data['temOrderId_orderCommodities']++; if($this->data['temOrderId_orderCommodities']>=$this->orderAmount)$this->data['temOrderId_orderCommodities']=0; return $this->data['orders'][$this->data['temOrderId_orderCommodities']]; })(), ]); } public function testReturned() { $this->service=$this->subMock([ 'class'=>StationTaskCommodityService::class, 'subServices'=>[ [ 'serviceName'=>'materialBoxService', 'class'=>MaterialBoxService::class, 'methods'=>[ 'firstOrCreate'=>new MaterialBox(['id'=>1]), ], ], ] ]); $this->data['stationTaskCommodities'] =(function(){ if(!isset($this->data['stationTaskCommodities'])) $this->data['stationTaskCommodities'] = collect(); foreach($this->data['batches'] as $batch){ $this->data['stationTaskCommodities'] =$this->data['stationTaskCommodities']->merge( $this->service->createByBatch($batch) ); } return $this->data['stationTaskCommodities']; })(); $this->assertEquals($this->orderCommodityAmount, $this->data['stationTaskCommodities']->count()); } function tearDown(): void { StationTaskCommodity::query() ->whereIn('id',data_get($this->data['stationTaskCommodities'],'*.id')??[]) ->delete(); Batch::query() ->whereIn('id',data_get($this->data['batches'],'*.id')??[]) ->delete(); Order::query() ->whereIn('id',data_get($this->data['orders'],'*.id')??[]) ->delete(); OrderBin::query() ->whereIn('id',data_get($this->data['orderBins'],'*.id')??[]) ->delete(); OrderCommodity::query() ->whereIn('id',data_get($this->data['orderCommodities'],'*.id')??[]) ->delete(); parent::tearDown(); } }