Ver código fonte

测试方法
清空cache

ajun 5 anos atrás
pai
commit
2cffb1a146

+ 65 - 0
tests/Services/OrderCommodityService/SyncOrderCommoditiesTest.php

@@ -0,0 +1,65 @@
+<?php
+
+
+namespace Tests\Services\OrderCommodityService;
+
+use Carbon\Carbon;
+use Tests\TestCase;
+use App\OracleDOCOrderHeader;
+use App\Order;
+use App\OrderCommodity;
+use App\Services\OrderCommodityService;
+use App\Services\OrderService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+
+class SyncOrderCommoditiesTest extends TestCase
+{
+    use RefreshDatabase;
+
+    /**
+     * @var OrderService $orderService
+     * @var OrderCommodityService $service
+     */
+    private $service;
+    private $orderService;
+    private $data = [];
+
+    public function setUp(): void
+    {
+        parent::setUp();
+        $this->service = app('OrderCommodityService');
+        $this->orderService = app('OrderService');
+    }
+
+    /**
+     * @test
+     */
+    public function syncOrderCommodities()
+    {
+        $orderHeader  = OracleDOCOrderHeader::query()->with('oracleDOCOrderDetails')->where('sostatus','99')->orderByDesc('addTime')->first();
+        $orderHeaders = collect();
+        $orderHeaders->push($orderHeader);
+
+        $this->orderService->syncOrderByWMSOrderHeaders($orderHeaders);
+        $this->service->syncOrderCommodities($orderHeaders);
+
+        $order = Order::query()->where('code',$orderHeader->orderno)->first();
+        $orderCommodities = OrderCommodity::query()->with('commodity')->where('order_id',$order['id'])->get();
+        $oracleDOCOrderDetails =  $orderHeader->oracleDOCOrderDetails;
+        $oracleDOCOrderDetails->each(function($detail)use($orderCommodities){
+            $orderCommodity = $orderCommodities->where('commodity.sku',$detail['sku'])->where('amount',$detail['qtyordered'])->first();
+            $this->assertNotNull($orderCommodity);
+        });
+
+        $orderCommodities->each(function($orderCommodity)use($oracleDOCOrderDetails){
+            $detail = $oracleDOCOrderDetails->where('sku',$orderCommodity->commodity->sku)->where('qtyordered',$orderCommodity->amount)->first();
+            $this->assertNotNull($detail);
+        });
+    }
+
+    public function tearDown(): void
+    {
+        cache()->flush();
+        parent::tearDown(); // TODO: Change the autogenerated stub
+    }
+}