OwnerPriceOperationServiceTest.php 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <?php
  2. //
  3. //
  4. //namespace Tests\Services\OwnerPriceOperationService;
  5. //
  6. //use App\Commodity;
  7. //use App\Owner;
  8. //use App\OwnerPriceOperation;
  9. //use App\OwnerPriceOperationItem;
  10. //use App\Services\FeatureService;
  11. //use App\Services\OwnerPriceOperationService;
  12. //use App\Unit;
  13. //use Mockery\Mock;
  14. //use Tests\TestCase;
  15. //
  16. //class OwnerPriceOperationServiceTest extends TestCase
  17. //{
  18. // /** @var OwnerPriceOperationService */
  19. // public $service;
  20. // public $data;
  21. //
  22. // protected function setUp(): void
  23. // {
  24. // parent::setUp();
  25. // $this->service = app(OwnerPriceOperationService::class);
  26. //
  27. // $this->data["units"] = [];
  28. // $pieces = Unit::query()->where("name","件")->first();
  29. // $box = Unit::query()->where("name","箱")->first();
  30. // $single = Unit::query()->where("name","单")->first();
  31. // if (!$pieces){
  32. // $pieces = factory(Unit::class)->create(["name"=>"件"]);
  33. // $this->data["units"][] = $pieces->toArray();
  34. // }
  35. // if (!$box){
  36. // $box = factory(Unit::class)->create(["name"=>"箱"]);
  37. // $this->data["units"][] = $box->toArray();
  38. // }
  39. // if (!$single){
  40. // $single = factory(Unit::class)->create(["name"=>"单"]);
  41. // $this->data["units"][] = $single->toArray();
  42. // }
  43. // $model1 = factory(OwnerPriceOperation::class)->create([
  44. // "operation_type"=>"入库", //操作类型
  45. // "strategy" =>"默认", //策略
  46. // ]);
  47. // $model2 = factory(OwnerPriceOperation::class)->create([
  48. // "operation_type"=>"入库", //操作类型
  49. // "strategy" =>"特征", //策略
  50. // ]);
  51. // $model3 = factory(OwnerPriceOperation::class)->create([
  52. // "operation_type"=>"出库", //操作类型
  53. // "strategy" =>"默认", //策略
  54. // ]);
  55. // $model4 = factory(OwnerPriceOperation::class)->create([
  56. // "operation_type"=>"出库", //操作类型
  57. // "strategy" =>"特征", //策略
  58. // ]);
  59. // $this->data["models"] = [$model1->toArray(),$model2->toArray(),$model3->toArray(),$model4->toArray()];
  60. //
  61. // $item1 = factory(OwnerPriceOperationItem::class)->create([
  62. // "owner_price_operation_id" => $model1->id,
  63. // "strategy" => "默认",
  64. // "amount" => 6,
  65. // "unit_id" => $box->id,
  66. // "unit_price" => 2.22,
  67. // ]);
  68. // $item2 = factory(OwnerPriceOperationItem::class)->create([
  69. // "owner_price_operation_id" => $model3->id,
  70. // "strategy" => "特征",
  71. // "amount" => 6,
  72. // "unit_id" => $box->id,
  73. // "unit_price" => 3.22,
  74. // ]);
  75. // $item3 = factory(OwnerPriceOperationItem::class)->create([
  76. // "owner_price_operation_id" => $model2->id,
  77. // "strategy" =>"默认",
  78. // "amount" => 6,
  79. // "unit_id" => $box->id,
  80. // "unit_price" => 4.22,
  81. // ]);
  82. // $item4 = factory(OwnerPriceOperationItem::class)->create([
  83. // "owner_price_operation_id" => $model2->id,
  84. // "strategy" =>"特征",
  85. // "amount" => 6,
  86. // "unit_id" => $box->id,
  87. // "unit_price" => 5.1,
  88. // ]);
  89. // $item5 = factory(OwnerPriceOperationItem::class)->create([
  90. // "owner_price_operation_id" => $model3->id,
  91. // "strategy" => "起步",
  92. // "amount" => 6,
  93. // "unit_id" => $box->id,
  94. // "unit_price" => 5.2,
  95. // ]);
  96. // $item6 = factory(OwnerPriceOperationItem::class)->create([
  97. // "owner_price_operation_id" => $model3->id,
  98. // "strategy" =>"默认",
  99. // "amount" => 6,
  100. // "unit_id" => $box->id,
  101. // "unit_price" => 5.3,
  102. // ]);
  103. // $item7 = factory(OwnerPriceOperationItem::class)->create([
  104. // "owner_price_operation_id" => $model3->id,
  105. // "strategy" =>"特征",
  106. // "amount" => 6,
  107. // "unit_id" => $box->id,
  108. // "unit_price" => 5.4,
  109. // ]);
  110. // $item8 = factory(OwnerPriceOperationItem::class)->create([
  111. // "owner_price_operation_id" => $model4->id,
  112. // "strategy" => "起步",
  113. // "amount" => 6,
  114. // "unit_id" => $box->id,
  115. // "unit_price" => 5.5,
  116. // ]);
  117. // $item9 = factory(OwnerPriceOperationItem::class)->create([
  118. // "owner_price_operation_id" => $model4->id,
  119. // "strategy" =>"默认",
  120. // "amount" => 6,
  121. // "unit_id" => $box->id,
  122. // "unit_price" => 5.6,
  123. // ]);
  124. // $item10 = factory(OwnerPriceOperationItem::class)->create([
  125. // "owner_price_operation_id" => $model4->id,
  126. // "strategy" =>"特征",
  127. // "amount" => 6,
  128. // "unit_id" => $box->id,
  129. // "unit_price" => 5.7,
  130. // ]);
  131. // $this->data["item"] = [$item1->toArray(),
  132. // $item2->toArray(),
  133. // $item3->toArray(),
  134. // $item4->toArray(),
  135. // $item5->toArray(),
  136. // $item6->toArray(),
  137. // $item7->toArray(),
  138. // $item8->toArray(),
  139. // $item9->toArray(),
  140. // $item10->toArray()];
  141. // $owner = factory(Owner::class)->create([
  142. // "user_owner_group_id" => 1,
  143. // ]);
  144. // $model1->ownerPriceOperationOwners()->sync([$owner->id]);
  145. // $model2->ownerPriceOperationOwners()->sync([$owner->id]);
  146. // $model3->ownerPriceOperationOwners()->sync([$owner->id]);
  147. // $model4->ownerPriceOperationOwners()->sync([$owner->id]);
  148. // $this->data["owners"] = [$owner->toArray()];
  149. // $this->data["commodities"] = [];
  150. // $commodity = factory(Commodity::class)->create([
  151. // 'sku' => md5(date('Ymd').\Illuminate\Support\Str::random(3)),
  152. // 'owner_id' => $owner->id,
  153. // "pack_spec" => 3
  154. // ]);
  155. // $this->data["commodities"][] = $commodity->toArray();
  156. // }
  157. //
  158. // /**
  159. // * @group customer
  160. // */
  161. // public function testMatching()
  162. // {
  163. // $this->partialMock(FeatureService::class,function ($mock){
  164. // /** @var Mock $mock */
  165. // $mock->shouldReceive("matchFeature")->andReturn(true);
  166. // });
  167. // $result = $this->service->matching(["packages"=>[["commodity"=>"测试","amount"=>55,"sku"=>$this->data["commodities"][0]["sku"]]]],[],$this->data["owners"][0]["id"],"入库");
  168. // $this->assertEquals(96.9,$result);
  169. // $result = $this->service->matching(["packages"=>[["commodity"=>"测试","amount"=>57,"sku"=>$this->data["commodities"][0]["sku"]]]],[],$this->data["owners"][0]["id"],"出库");
  170. // $this->assertEquals(79.60000000000001,$result);
  171. // }
  172. //
  173. // public function tearDown(): void
  174. // {
  175. // Unit::destroy(array_column($this->data["units"],"id"));
  176. // OwnerPriceOperation::destroy(array_column($this->data["models"],"id"));
  177. // foreach ($this->data["models"] as $d){
  178. // $model = new OwnerPriceOperation();
  179. // $model->id = $d["id"];
  180. // $model->ownerPriceOperationOwners()->sync([]);
  181. // }
  182. // OwnerPriceOperationItem::destroy(array_column($this->data["item"],"id"));
  183. // Owner::destroy(array_column($this->data["owners"],"id"));
  184. // Commodity::destroy(array_column($this->data["commodities"],"id"));
  185. // parent::tearDown();
  186. // }
  187. //}