service=$this->subMock([ 'class'=>BatchService::class, 'subServices'=>[ [ 'serviceName'=>'stationTaskBatchService', 'class'=>StationTaskBatchService::class, 'methods'=>[ 'firstOrCreate'=>new MaterialBox(['id'=>1]), ], 'subServices'=>[ [ 'serviceName'=>'foreignHaiRoboticsService', 'class'=>ForeignHaiRoboticsService::class, 'methods'=>[ 'fetchGroup'=>true, ], ], ] ], ] ]); $this->data['batches'] = factory(Batch::class, $this->batchAmount) ->create(); $this->data['orders'] = factory(Order::class) ->createMany($this->makeArray($this->orderAmount,[ 'status'=>'未处理', 'batch_id' => function(){return $this->getTargetIdCirculately($this->data['batches']);} ])); $this->data['orderCommodities'] = factory(OrderCommodity::class) ->createMany($this->makeArray($this->orderCommodityAmount,[ 'order_id' => function(){return $this->getTargetIdCirculately($this->data['orders']);} ])); $this->data['station_rule_batches'] = factory(StationRuleBatch::class) ->createMany($this->makeArray($this->batchAmount,[ 'owner_id' => function(){return $this->getTargetIdCirculately($this->data['batches'],'','owner_id');} ])); } public function testReturned() { $this->service->assignTasks($this->data['batches']); ($波次任务指向了波次=function(){ $this->assertEquals( data_get($this->data['batches'],'*.id'), data_get($this->data['batches'],'*.stationBatchTask.batch_id') ); })(); } function tearDown(): void { $stationBatchTasks=data_get($this->data['batches'],'*.stationBatchTask'); $a3=data_get($this->data['batches'],'*.stationBatchTask.*.stationTask'); $a4=data_get($this->data['batches'],'*.stationBatchTask.stationTask'); foreach ($stationBatchTasks as $stationBatchTask){ $stationBatchTask->loadMissing('stationTask.stationTaskCommodities'); $stationBatchTask->loadMissing('stationTask.stationTaskMaterialBoxes.materialBox'); } $a13=data_get($this->data['batches'],'*.stationBatchTask.*.stationTask'); $a14=data_get($this->data['batches'],'*.stationBatchTask.stationTask'); Batch::query() ->whereIn('id',data_get($this->data['batches'],'*.id')??[]) ->delete(); // StationTaskBatch::query() // ->whereIn('id',data_get($this->data['batches'],'*.stationBatchTask.id')??[]) // ->delete(); StationTaskCommodity::query() ->whereIn('id',data_get($this->data['batches'],'*.stationBatchTask.*.stationTask.*.stationTaskCommodities.id')??[]) ->delete(); StationTask::query() ->whereIn('id',data_get($this->data['batches'],'*.stationBatchTask.stationTask.id')??[]) ->delete(); Order::query() ->whereIn('id',data_get($this->data['orders'],'*.id')??[]) ->delete(); OrderCommodity::query() ->whereIn('id',data_get($this->data['orderCommodities'],'*.id')??[]) ->delete(); StationRuleBatch::query() ->whereIn('id',data_get($this->data['station_rule_batches'],'*.id')??[]) ->delete(); parent::tearDown(); } }