Преглед изворни кода

OrderService 测试用例修改

ajun пре 5 година
родитељ
комит
111bdbc399

+ 20 - 9
tests/Services/OrderService/CreateOrFindOrderTest.php

@@ -2,35 +2,46 @@
 
 namespace Tests\Services\OrderService;
 
+use App\Logistic;
 use App\OracleDOCOrderHeader;
 use App\Order;
+use App\Owner;
 use App\Services\OrderService;
+use App\Shop;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class CreateOrFindOrderTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderService $orderService
      */
     public $orderService;
-    public $data = [];
-    public $order ;
     public function setUp(): void
     {
         parent::setUp();
         $this->orderService = app('OrderService');
-        $this->data['orderHeader'] = OracleDOCOrderHeader::query()->orderBy('addTime')->first();
     }
 
-    public function testExample()
+    /**
+     * @test
+     */
+    public function createOrFindOrder()
     {
-        $this->orderService->createOrFindOrder($this->data['orderHeader']);
-        $order = Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']);
+        $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
+        Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname,'owner_id'=>$owner->id]);
+        app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
+        if(!$orderHeader){
+            $this->assertNull($orderHeader);
+            return;
+        }
+        $this->orderService->createOrFindOrder($orderHeader);
+        $order = Order::query()->where('code',$orderHeader->orderno)->first();
         $this->assertNotNull($order);
-        $this->order = $order;
-        $this->assertEquals($order->code,$this->data['orderHeader']['orderno']);
-        $this->order->delete();
+        $this->assertEquals($order->code,$orderHeader->orderno);
     }
 }

+ 6 - 1
tests/Services/OrderService/FilterOrderByCacheTeat.php

@@ -9,7 +9,9 @@ use Tests\TestCase;
 
 class FilterOrderByCacheTeat extends TestCase
 {
-
+    /**
+     * @var OrderService $service
+     */
     private $service;
     public function setUp(): void
     {
@@ -17,6 +19,9 @@ class FilterOrderByCacheTeat extends TestCase
         $this->service = app('OrderService');
     }
 
+    /**
+     * @test
+     */
     public function testFilterOderByCache()
     {
 

+ 14 - 4
tests/Services/OrderService/FindOrCreateByClientCodeTest.php

@@ -10,6 +10,8 @@ use Tests\TestCase;
 
 class FindOrCreateByClientCodeTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
 
@@ -19,13 +21,21 @@ class FindOrCreateByClientCodeTest extends TestCase
         $this->service=app('OrderService');
     }
 
-    public function testFindOrCreateByClientCode()
+    /**
+     * @test
+     */
+    public function findOrCreateByClientCode()
     {
-        $clientCode = OracleDOCOrderHeader::query()->first()->soreference1;
+        $clientCode = OracleDOCOrderHeader::query()
+            ->orderByDesc('AddTime')
+            ->where('sostatus',99)
+            ->first()
+            ->soreference1;
+
         $order =  $this->service->findOrCreateByClientCode($clientCode);
         $this->assertNotEmpty($clientCode);
         $this->assertNotEmpty($order);
-        $this->assertNotEmpty($order->client_code);
-        $this->assertNotEmpty($order->warehouse_id);
+        $this->assertNotNull($order->client_code);
+        $this->assertNotNull($order->warehouse_id);
     }
 }

+ 15 - 16
tests/Services/OrderService/GetByWmsOrdersTest.php

@@ -11,6 +11,8 @@ use Tests\TestCase;
 
 class GetByWmsOrdersTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
 
@@ -22,21 +24,18 @@ class GetByWmsOrdersTest extends TestCase
 
     public function testGetByWmsOrders()
     {
-        $orders = Order::query()->orderByDesc('id')->forPage(0,5)->get();
-        $orderHeader = OracleDOCOrderHeader::query()->whereIn('OrderNo',$orders->map(function($order){
-            return $order->code;
-        }))->get();
-        $order_list = $this->service->getByWmsOrders($orderHeader);
-        $this->assertIsBool(count($order_list)==count($orders));
-
-        $order_codes = $orders->sortBy('code')->map(function($order){
-            return $order->code;
-        });
-
-        $order_list_codes = $order_list->sortBy('code')->map(function($order){
-            return $order->code;
-        });
-
-        $this->assertEquals(count($order_list_codes),count($order_codes));
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
+        $order_nos = data_get($orderHeaders,'*.orderno');
+        $this->service->syncOrder($orderHeaders);
+        $orders = Order::query()->whereIn('code',$order_nos)->get();
+        $this->assertEquals($orders->count(),$orders->count());
+        foreach ($orderHeaders as $orderHeader) {
+            $this->assertNotNull($orders->where('code',$orderHeader->orderno));
+        }
     }
 }

+ 15 - 4
tests/Services/OrderService/GetCreateOrderModelByWMSOrderHeadersTest.php

@@ -3,6 +3,8 @@
 namespace Tests\Services\OrderService\GetCreateOrderModelByWMSOrderHeadersTest;
 
 use App\Logistic;
+use App\OracleDOCOrderHeader;
+use App\Order;
 use App\Owner;
 use App\Services\common\DataHandlerService;
 use App\Services\LogisticService;
@@ -20,6 +22,9 @@ use Tests\TestCase;
 
 class GetCreateOrderModelByWMSOrderHeadersTest extends TestCase
 {
+
+    use  RefreshDatabase;
+
     /**
      * @var OrderService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -50,21 +55,27 @@ class GetCreateOrderModelByWMSOrderHeadersTest extends TestCase
 
     public function testGetCreateOrderModelByWMSOrderHeaders()
     {
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
+
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
         $warehouses = $this->getWareHouses($orderHeaders);
         $owners = $this->getOwners($orderHeaders);
         $logistics = $this->getLogistics($orderHeaders);
         $shops = $this->getShops($orderHeaders);
 
         $orders = $this->service->getByWmsOrders($orderHeaders);
-        $crate_orders = $this->service->getCreateOrderModelByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops);
+        $crate_orders = $this->service->getCreateOrderModelsByWMSOrderHeaders($orderHeaders,$orders,$warehouses,$owners,$logistics,$shops);
         if($orders->count() == $orderHeaders->count() ){
             $this->assertEquals($orders->count(),$orderHeaders->count());
         }
+        $crate_orders = collect($crate_orders);
         foreach ($orderHeaders as $orderHeader) {
             $order = $crate_orders->where('code',$orderHeader->orderno)->first();
+            $order = new Order($order);
             $exist_order = $orders->where('code',$orderHeader->orderno)->first();
             if(isset($exist_order))continue;
             $this->assertNotNull($order);

+ 0 - 83
tests/Services/OrderService/GetCreateOrderModelsTest.php

@@ -1,83 +0,0 @@
-<?php
-
-namespace Tests\Services\OrderService\GetCreateOrderModelsTest;
-
-use App\OracleDOCOrderHeader;
-use App\Services\common\DataHandlerService;
-use App\Services\LogisticService;
-use App\Services\OracleDOCOrderHeaderService;
-use App\Services\OrderService;
-use App\Services\OwnerService;
-use App\Services\ShopService;
-use App\Services\WarehouseService;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Tests\TestCase;
-
-class GetCreateOrderModelsTest extends TestCase
-{
-    /**
-     * @var OrderService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     * @var DataHandlerService $dataHandlerService
-     * @var OwnerService $ownerService
-     * @var LogisticService $logisticService
-     * @var ShopService $shopService
-     * @var WarehouseService $warehouseService
-     */
-    public $service;
-    public $orderHeaderService;
-    public $dataHandlerService;
-    public $ownerService;
-    public $logisticService;
-    public $shopService;
-    public $warehouseService;
-    public function setUp(): void
-    {
-        parent::setUp();
-        $this->service = app('OrderService');
-        $this->orderHeaderService = app('OracleDocOrderHeaderService');
-        $this->dataHandlerService=app('DataHandlerService');
-        $this->ownerService=app('OwnerService');
-        $this->logisticService=app('LogisticService');
-        $this->shopService=app('ShopService');
-        $this->warehouseService=app('WarehouseService');
-    }
-
-    public function testGetCreateModels()
-    {
-        $orderHeader = OracleDOCOrderHeader::query()->orderByDesc('addTime')->first();
-
-        $orderHeaders= collect($orderHeader);
-        $warehouse_map = $this->getWareHouseMap($orderHeaders);
-        $owner_map = $this->getOwnersMap($orderHeaders);
-        $logistic_map = $this->getLogisticMap($orderHeaders);
-        $shop_map = $this->getShopMap($orderHeaders);
-
-        $create_order = $this->service->getCreateOrderModel($orderHeader,$warehouse_map,$owner_map,$logistic_map,$shop_map);
-        $this->assertNotEmpty($create_order);
-
-    }
-
-    public function getWareHouseMap($orderHeaders)
-    {
-        $warehouses = $this->warehouseService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$warehouses);
-    }
-    public function getOwnersMap($orderHeaders)
-    {
-        $owners = $this->ownerService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$owners);
-    }
-    public function getLogisticMap($orderHeaders)
-    {
-        $logistics = $this->logisticService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$logistics);
-    }
-    public function getShopMap($orderHeaders)
-    {
-        $shops = $this->shopService->getByWmsOrders($orderHeaders);
-        return $this->dataHandlerService->dataHeader(['code'],$shops);
-    }
-
-}

+ 14 - 7
tests/Services/OrderService/GetOrderByLogisticNumberTest.php

@@ -16,6 +16,8 @@ use Tests\TestCase;
 
 class GetOrderByLogisticNumberTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
     public function setUp(): void
@@ -26,16 +28,21 @@ class GetOrderByLogisticNumberTest extends TestCase
 
     public function testGetOrderByLogisticNumber()
     {
+
+        $orderHeader = OracleDOCOrderHeader::query()
+            ->with('actAllocationDetails')
+            ->where('sostatus',99)
+            ->orderByDesc('AddTime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->where('sostatus',99)
+            ->get();
+
+        $this->service->syncOrder($orderHeaders);
         $order_package = OrderPackage::query()->orderByDesc('id')->first();
+
         $logistic_number = $order_package->logistic_number;
-        $orderHeader = OracleDOCOrderHeader::query()->whereHas('actAllocationDetails',function($query)use($order_package){
-            $query->where('PickToTraceID',$order_package->logistic_number);
-        })->first();
 
-        if(!$orderHeader){
-            $orderHeader = OracleDOCOrderHeader::query()->with('actAllocationDetails')->orderBy('AddTime')->first();
-            $logistic_number = data_get($orderHeader,'actAllocationDetails.*.picktotraceid')[0];
-        }
         $order = $this->service->getOrderByLogisticNumber($logistic_number);
         $this->assertEquals((string)$orderHeader->addtime,(string)$order->created_at);
         $this->assertEquals($orderHeader->orderno,$order->code);

+ 7 - 7
tests/Services/OrderService/GetOrderSyncAtTest.php

@@ -3,10 +3,12 @@
 namespace Tests\Services\OrderService;
 
 use App\Services\OrderService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
 use Tests\TestCase;
 
 class GetOrderSyncAtTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderService $service
      */
@@ -18,7 +20,10 @@ class GetOrderSyncAtTest extends TestCase
         $this->service = app('OrderService');
     }
 
-    public function testGetOrderSyncAt()
+    /**
+     * @test
+     */
+    public function getCreatedOrderSyncAt()
     {
         $key = config('sync.order_sync.cache_prefix.created_at');
         $data = $this->service->getOrderSyncAt($key);
@@ -28,15 +33,10 @@ class GetOrderSyncAtTest extends TestCase
     /**+
      * @test
      */
-    public function getCreatedSyncAt()
+    public function getUpdatedOrderSyncAt()
     {
         $key = config('sync.order_sync.cache_prefix.updated_at');
         $data = $this->service->getOrderSyncAt($key,'renewal');
         $this->assertNotEmpty($data);
     }
-
-    public function tearDown(): void
-    {
-        parent::tearDown(); // TODO: Change the autogenerated stub
-    }
 }

+ 19 - 3
tests/Services/OrderService/GetParamByOrderHeaderTest.php

@@ -3,14 +3,20 @@
 namespace Tests\Services\OrderService\GetParamByOrderHeaderTest;
 
 use App\OracleDOCOrderHeader;
+use App\Services\LogisticService;
 use App\Services\OrderIssueService;
 use App\Services\OrderService;
+use App\Services\OwnerService;
+use App\Services\ShopService;
+use App\Services\WarehouseService;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class GetParamByOrderHeaderTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
     public function setUp(): void
@@ -19,11 +25,21 @@ class GetParamByOrderHeaderTest extends TestCase
         $this->service = app(OrderService::class);
     }
 
+    /**
+     * @test
+     */
     public function testGetParamByOrderHeader()
     {
-        $orderHeader = OracleDOCOrderHeader::query()
-            ->with('actAllocationDetails')
-            ->orderByDesc('AddTime')->first();
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
+        app(ShopService::class)->getByWmsOrders($orderHeaders);
+        app(OwnerService::class)->getByWmsOrders($orderHeaders);
+        app(LogisticService::class)->getByWmsOrders($orderHeaders);
+        app(WarehouseService::class)->getByWmsOrders($orderHeaders);
         $param = $this->service->getParamByOrderHeader($orderHeader);
         $this->assertNotNull($param);
         $this->assertNotEmpty($param['code']);

+ 23 - 11
tests/Services/OrderService/GetUpdateModelByWmsOrderHeadersTest.php

@@ -3,6 +3,8 @@
 namespace Tests\Services\OrderService\GetUpdateOrderModelByWMSOrderHeadersTest;
 
 use App\Logistic;
+use App\OracleDOCOrderHeader;
+use App\Order;
 use App\Owner;
 use App\Services\LogisticService;
 use App\Services\OracleDOCOrderHeaderService;
@@ -20,6 +22,7 @@ use Tests\TestCase;
 
 class GetUpdateModelByWmsOrderHeadersTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -33,33 +36,42 @@ class GetUpdateModelByWmsOrderHeadersTest extends TestCase
         $this->service = app('OrderService');
         $this->orderHeaderService = app('OracleDocOrderHeaderService');
     }
-    public function testExample()
+
+    /**
+     * @test
+     */
+    public function getUpdateOrderModelByWMSOrderHeaders()
     {
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
+
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
         /**
          * @var OwnerService $ownerService
          * @var LogisticService $logisticService
          * @var ShopService $shopService
          * @var WarehouseService $warehouseService
+         * @var OrderService $orderService
          */
         $ownerService = app("OwnerService");
         $logisticService = app("LogisticService");
         $shopService = app('ShopService');
         $warehouseService = app('WarehouseService');
-
+        $orderService = app('OrderService');
         $owners = $ownerService->getByWmsOrders($orderHeaders);
         $logistics = $logisticService->getByWmsOrders($orderHeaders);
         $shops = $shopService->getByWmsOrders($orderHeaders);
         $warehouses = $warehouseService->getByWmsOrders($orderHeaders);
+        $orderService->syncOrderByWMSOrderHeaders($orderHeaders);
 
-        $orders = $this->service->getByWmsOrders($orderHeaders);
-        $orders->each(function($item){
-            $item->warehouse_id = rand(1,3);
-            $item->owner_id = rand(1,50);
-            $item->shop_id = rand(1,50);
-            $item->logistic_id = rand(1,50);
+        $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->get();
+        $orders->each(function(&$item){
+            $item->warehouse_id = 1;
+            $item->owner_id = 1;
+            $item->shop_id = 1;
+            $item->logistic_id = 1;
             $item->consignee_name = Str::random(50);
             $item->consignee_phone = Str::random(50);
             $item->province = Str::random(50);

+ 8 - 3
tests/Services/OrderService/LogisticNumberFirstOrCreateOrderTest.php

@@ -11,17 +11,22 @@ use Tests\TestCase;
 
 class LogisticNumberFirstOrCreateOrderTest extends TestCase
 {
+    use RefreshDatabase;
     /** @var OrderService $service */
     public $service;
 
     public function setUp(): void
     {
-        $this->service=app(OrderService::class);
         parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service=app(OrderService::class);
     }
-    public function testLogisticNumberFirstOrCreateOrder()
+
+    /**
+     * @test
+     */
+    public function logisticNumberFirstOrCreateOrder()
     {
-        $logistic_number = OracleActAllocationDetails::query()->first()->picktotraceid;
+        $logistic_number = OracleActAllocationDetails::query()->orderByDesc('addtime')->whereNotNull('picktotraceid')->first()->picktotraceid;
         $order = $this->service->logisticNumberFirstOrCreateOrder($logistic_number);
         $this->assertNotEmpty($order);
     }

+ 9 - 3
tests/Services/OrderService/PushOrderCreatedCacheTest.php

@@ -12,6 +12,7 @@ use Tests\TestCase;
 
 class PushOrderCreatedCacheTest extends TestCase
 {
+    use RefreshDatabase;
     /** @var OrderService $service */
     public $service;
     public $data;
@@ -33,10 +34,15 @@ class PushOrderCreatedCacheTest extends TestCase
      */
     public function pushOrderCreatedCache()
     {
-        $this->service->pushOrderUpdatedCache($this->data['OrderHeader']);
-        $this->assertIsBool(Cache::get('order_newest_update_has_set'));
+        $renewal_list   = config('sync.order_sync.cache_prefix.renewal_list');
+        $hasKey         = config('sync.order_sync.cache_prefix.renewal_has');
+        $prefixKey      = config('sync.order_sync.cache_prefix.renewal');
+
+        $this->service->pushOrderCache($this->data['OrderHeader'],$prefixKey,$hasKey,$renewal_list);
+
+        $this->assertNotNull(Cache::get($hasKey));
         foreach ($this->data['OrderHeader'] as $datum) {
-            $this->assertNotEmpty(Cache::get('order_newest_update_'.$datum->orderno));
+            $this->assertNotEmpty(Cache::get($prefixKey.$datum->orderno));
         }
         $this->assertNotNull($this->data['OrderHeader']);
     }

+ 10 - 3
tests/Services/OrderService/PushOrderUpdateCacheTest.php

@@ -11,6 +11,8 @@ use Tests\TestCase;
 
 class PushOrderUpdateCacheTest extends TestCase
 {
+    use RefreshDatabase;
+
     /** @var OrderService $service */
     public $service;
     public $data;
@@ -33,10 +35,15 @@ class PushOrderUpdateCacheTest extends TestCase
      */
     public function pushOrderUpdateCache()
     {
-        $this->service->pushOrderCreatedCache($this->data['OrderHeader']);
-        $this->assertIsBool(Cache::get('order_newest_has_set'));
+        $renewal_list   = config('sync.order_sync.cache_prefix.renewal_list');
+        $hasKey         = config('sync.order_sync.cache_prefix.renewal_has');
+        $prefixKey      = config('sync.order_sync.cache_prefix.renewal');
+
+        $this->service->pushOrderCache($this->data['OrderHeader'],$prefixKey,$hasKey,$renewal_list);
+
+        $this->assertNotNull(Cache::get($hasKey));
         foreach ($this->data['OrderHeader'] as $datum) {
-            $this->assertNotEmpty(Cache::get('order_newest_'.$datum->orderno));
+            $this->assertNotEmpty(Cache::get($prefixKey.$datum->orderno));
         }
         $this->assertNotNull($this->data['OrderHeader']);
     }

+ 1 - 0
tests/Services/OrderService/SetOrderSyncAtTest.php

@@ -12,6 +12,7 @@ use Tests\TestCase;
 
 class SetOrderSyncAtTest extends TestCase
 {
+    use RefreshDatabase;
     /** @var OrderService $service */
     private $service;
     private $data;

+ 11 - 5
tests/Services/OrderService/SyncOrderByWMSOrderHeaderTest.php

@@ -3,6 +3,8 @@
 namespace Tests\Services\OrderService\SyncOrderByWMSOrderHeaderTest;
 
 use App\Logistic;
+use App\OracleDOCOrderHeader;
+use App\Order;
 use App\Owner;
 use App\Services\common\DataHandlerService;
 use App\Services\LogisticService;
@@ -20,6 +22,7 @@ use Tests\TestCase;
 
 class SyncOrderByWMSOrderHeaderTest extends TestCase
 {
+    use RefreshDatabase;
     /**
      * @var OrderService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
@@ -44,14 +47,17 @@ class SyncOrderByWMSOrderHeaderTest extends TestCase
     }
     public function testCreateOrUpdateOrderByWMSOrderHeaders()
     {
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
+            ->get();
+
         $this->service->syncOrderByWMSOrderHeaders($orderHeaders);
-        $collect =null;
+        $orders = Order::query()->whereIn('code',data_get($orderHeaders,'*.orderno'))->get();
         foreach ($orderHeaders as $orderHeader) {
             $code = $orderHeader->orderno;
-            $order = $collect->where('code',$code)->first();
+            $order = $orders->where('code',$code)->first();
             $this->assertNotNull($order);
 
             $warehouse = Warehouse::query()->where('code',$orderHeader->warehouseid)->first();

+ 16 - 37
tests/Services/OrderService/SyncOrderTest.php

@@ -21,54 +21,33 @@ use Tests\TestCase;
 
 class SyncOrderTest extends TestCase
 {
+    use RefreshDatabase;
+
     /**
      * @var OrderService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     * @var DataHandlerService $dataHandlerService
-     * @var OwnerService $ownerService
-     * @var LogisticService $logisticService
-     * @var ShopService $shopService
-     * @var WarehouseService $warehouseService
      */
     public $service;
-    public $orderHeaderService;
-    public $dataHandlerService;
-    public $ownerService;
-    public $logisticService;
-    public $shopService;
-    public $warehouseService;
+
     public function setUp(): void
     {
         parent::setUp();
         $this->service=app(OrderService::class);
-        $this->orderHeaderService=app(OracleDOCOrderHeaderService::class);
     }
-    public function testCreateOrUpdateOrderInfo()
-    {
-        $order = OracleDOCOrderHeader::query();
 
-        $carbon =Carbon::now()->subHours(1);
-        $date = '2020-05-18 18:13:50';
-        $orderHeader = OracleDOCOrderHeader::query()->selectRaw(implode(',',OracleDOCOrderHeaderService::$columns))
-            ->with(['oracleBASCustomer'=>function($query){
-                $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
-            },'oracleDOCOrderDetails'=>function($query){
-                $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered');
-            }, 'actAllocationDetails'=>function($query){
-                $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku');
-            },'oracleBASCode'=>function($query){
-                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
-            }])
-            ->where('DOC_Order_Header.EditTime','>=',$carbon)
+    /**
+     * @test
+     */
+    public function createOrUpdateOrderInfo()
+    {
+        $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
+        $orderHeaders = OracleDOCOrderHeader::query()
+            ->where('sostatus',99)
+            ->where('addtime','>=',$orderHeader->addtime)
             ->get();
-        $this->service->syncOrder($orderHeader);
-        $order = $this->service->getByWmsOrders($orderHeader);
-        $this->assertNotNull($order);
+        $this->service->syncOrder($orderHeaders);
+        $orders = $this->service->getByWmsOrders($orderHeaders);
+        $this->assertNotNull($orders);
         $this->assertNotNull($orderHeader);
-    }
-
-    public function tearDown(): void
-    {
-        parent::tearDown(); // TODO: Change the autogenerated stub
+        $this->assertEquals(count($orderHeaders),count($orders));
     }
 }