service = app(OwnerPriceOperationService::class); // // $this->data["units"] = []; // $pieces = Unit::query()->where("name","件")->first(); // $box = Unit::query()->where("name","箱")->first(); // $single = Unit::query()->where("name","单")->first(); // if (!$pieces){ // $pieces = factory(Unit::class)->create(["name"=>"件"]); // $this->data["units"][] = $pieces->toArray(); // } // if (!$box){ // $box = factory(Unit::class)->create(["name"=>"箱"]); // $this->data["units"][] = $box->toArray(); // } // if (!$single){ // $single = factory(Unit::class)->create(["name"=>"单"]); // $this->data["units"][] = $single->toArray(); // } // $model1 = factory(OwnerPriceOperation::class)->create([ // "operation_type"=>"入库", //操作类型 // "strategy" =>"默认", //策略 // ]); // $model2 = factory(OwnerPriceOperation::class)->create([ // "operation_type"=>"入库", //操作类型 // "strategy" =>"特征", //策略 // ]); // $model3 = factory(OwnerPriceOperation::class)->create([ // "operation_type"=>"出库", //操作类型 // "strategy" =>"默认", //策略 // ]); // $model4 = factory(OwnerPriceOperation::class)->create([ // "operation_type"=>"出库", //操作类型 // "strategy" =>"特征", //策略 // ]); // $this->data["models"] = [$model1->toArray(),$model2->toArray(),$model3->toArray(),$model4->toArray()]; // // $item1 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model1->id, // "strategy" => "默认", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 2.22, // ]); // $item2 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model3->id, // "strategy" => "特征", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 3.22, // ]); // $item3 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model2->id, // "strategy" =>"默认", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 4.22, // ]); // $item4 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model2->id, // "strategy" =>"特征", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 5.1, // ]); // $item5 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model3->id, // "strategy" => "起步", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 5.2, // ]); // $item6 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model3->id, // "strategy" =>"默认", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 5.3, // ]); // $item7 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model3->id, // "strategy" =>"特征", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 5.4, // ]); // $item8 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model4->id, // "strategy" => "起步", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 5.5, // ]); // $item9 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model4->id, // "strategy" =>"默认", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 5.6, // ]); // $item10 = factory(OwnerPriceOperationItem::class)->create([ // "owner_price_operation_id" => $model4->id, // "strategy" =>"特征", // "amount" => 6, // "unit_id" => $box->id, // "unit_price" => 5.7, // ]); // $this->data["item"] = [$item1->toArray(), // $item2->toArray(), // $item3->toArray(), // $item4->toArray(), // $item5->toArray(), // $item6->toArray(), // $item7->toArray(), // $item8->toArray(), // $item9->toArray(), // $item10->toArray()]; // $owner = factory(Owner::class)->create([ // "user_owner_group_id" => 1, // ]); // $model1->ownerPriceOperationOwners()->sync([$owner->id]); // $model2->ownerPriceOperationOwners()->sync([$owner->id]); // $model3->ownerPriceOperationOwners()->sync([$owner->id]); // $model4->ownerPriceOperationOwners()->sync([$owner->id]); // $this->data["owners"] = [$owner->toArray()]; // $this->data["commodities"] = []; // $commodity = factory(Commodity::class)->create([ // 'sku' => md5(date('Ymd').\Illuminate\Support\Str::random(3)), // 'owner_id' => $owner->id, // "pack_spec" => 3 // ]); // $this->data["commodities"][] = $commodity->toArray(); // } // // /** // * @group customer // */ // public function testMatching() // { // $this->partialMock(FeatureService::class,function ($mock){ // /** @var Mock $mock */ // $mock->shouldReceive("matchFeature")->andReturn(true); // }); // $result = $this->service->matching(["packages"=>[["commodity"=>"测试","amount"=>55,"sku"=>$this->data["commodities"][0]["sku"]]]],[],$this->data["owners"][0]["id"],"入库"); // $this->assertEquals(96.9,$result); // $result = $this->service->matching(["packages"=>[["commodity"=>"测试","amount"=>57,"sku"=>$this->data["commodities"][0]["sku"]]]],[],$this->data["owners"][0]["id"],"出库"); // $this->assertEquals(79.60000000000001,$result); // } // // public function tearDown(): void // { // Unit::destroy(array_column($this->data["units"],"id")); // OwnerPriceOperation::destroy(array_column($this->data["models"],"id")); // foreach ($this->data["models"] as $d){ // $model = new OwnerPriceOperation(); // $model->id = $d["id"]; // $model->ownerPriceOperationOwners()->sync([]); // } // OwnerPriceOperationItem::destroy(array_column($this->data["item"],"id")); // Owner::destroy(array_column($this->data["owners"],"id")); // Commodity::destroy(array_column($this->data["commodities"],"id")); // parent::tearDown(); // } //}