Bladeren bron

修改测试用例

ajun 5 jaren geleden
bovenliggende
commit
6bdf154282

+ 0 - 1
tests/Services/OrderPackageService/GetInnerParamsTest.php

@@ -16,7 +16,6 @@ use Tests\TestCase;
 
 class GetInnerParamsTest extends TestCase
 {
-    use RefreshDatabase;
     /**
      * @var OrderPackageService $service
      */

+ 64 - 11
tests/Services/OrderPackageService/SyncOrderPackageTest.php

@@ -7,6 +7,7 @@ use App\OracleActAllocationDetails;
 use App\OracleBasSKU;
 use App\OracleDOCOrderHeader;
 use App\Order;
+use App\OrderPackage;
 use App\Owner;
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderPackageService;
@@ -14,11 +15,11 @@ use App\Services\OrderService;
 use Carbon\Carbon;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Support\Str;
 use Tests\TestCase;
 
 class SyncOrderPackageTest extends TestCase
 {
-    use RefreshDatabase;
 
     /**
      * @var OrderPackageService $service
@@ -38,24 +39,25 @@ class SyncOrderPackageTest extends TestCase
         $this->orderHeaderService = app('OracleDocOrderHeaderService');
 
         $orderHeader = factory(OracleDOCOrderHeader::class)->make(['userdefine1' =>'TEST_OW' ]);
-        $this->data['orderHeader'] = $orderHeader;
-        $order = factory(Order::class)->create([
-            'code'=>$orderHeader['orderno'],
-        ]);
-
+        $order = factory(Order::class)->create(['code'=>$orderHeader['orderno'],]);
         $basSku = factory(OracleBasSKU::class)->make(['customerid' => 'TEST_OW']);
-        $this->data['sku'] = $basSku;
         $OracleActAllocationDetail1 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$orderHeader->orderno,'customerid'=>'TEST_OW','sku'=>$basSku->sku]);
         $OracleActAllocationDetail2 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$orderHeader->orderno,'customerid'=>'TEST_OW','sku'=>$basSku->sku]);
         $OracleActAllocationDetail3 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$orderHeader->orderno,'customerid'=>'TEST_OW','sku'=>$basSku->sku]);
         $OracleActAllocationDetails = collect([$OracleActAllocationDetail1,$OracleActAllocationDetail2,$OracleActAllocationDetail3]);
         $orderHeader->setRelation('actAllocationDetails',$OracleActAllocationDetails);
-        $this->data['actAllocationDetails'] = $OracleActAllocationDetails;
+
         $owner = factory(Owner::class)->create(['code'=>'TEST_OW']);
         $commodity = factory(Commodity::class)->create(['sku'=>$basSku['sku'],'owner_id' => $owner]);
-        $this->data['owner'] = $owner;
-        $this->data['commodity'] = $commodity;
-        $this->data['order'] = $order;
+        $this->data = [
+            'owner' => $owner,
+            'commodity' => $commodity,
+            'order' => $order,
+            'orderHeader' =>  $orderHeader,
+            'sku' => $basSku,
+            'actAllocationDetails' => $OracleActAllocationDetails,
+        ];
+
     }
 
     /**
@@ -63,6 +65,57 @@ class SyncOrderPackageTest extends TestCase
      */
     public function syncOrderPackage()
     {
+        $orderHeaders = collect([$this->data['orderHeader']]);
+        $this->service->syncOrderPackage($orderHeaders);
+        $orderPackages = OrderPackage::query()->where('order_id',$this->data['order']['id'])->get();
+        $this->assertEquals($orderPackages->count(),count($this->data['orderHeader']->actAllocationDetails));
+    }
 
+    /**
+     * @test
+     */
+    public function orderPackageUnnecessary()
+    {
+        OrderPackage::query()->create(['order_id'=>$this->data['order']['id'],'logistic_number'=>Str::uuid()]);
+        OrderPackage::query()->create(['order_id'=>$this->data['order']['id'],'logistic_number'=>Str::uuid()]);
+        $orderHeaders = collect([$this->data['orderHeader']]);
+        $this->service->syncOrderPackage($orderHeaders);
+        $orderPackages = OrderPackage::query()->where('order_id',$this->data['order']['id'])->get();
+        $this->assertEquals($orderPackages->count(),count($this->data['orderHeader']->actAllocationDetails));
     }
+
+    /**
+     * @test
+     */
+    public function orderPackagesLack()
+    {
+        $orderHeaders = collect([$this->data['orderHeader']]);
+        $this->service->syncOrderPackage($orderHeaders);
+        $actAllocationDetails = $this->data['actAllocationDetails']->random(2);
+        $this->data['orderHeader']->setRelation('actAllocationDetails', $actAllocationDetails);
+        $orderHeaders = collect([$this->data['orderHeader']]);
+        $this->service->syncOrderPackage($orderHeaders);
+        $orderPackages = OrderPackage::query()->where('order_id',$this->data['order']['id'])->get();
+        $this->assertEquals($orderPackages->count(),count($this->data['orderHeader']->actAllocationDetails));
+        $this->assertOrderPackage($orderHeaders,$orderPackages);
+    }
+
+    public function assertOrderPackage($orderHeaders,$orderPackages)
+    {
+        foreach ($orderHeaders->first()->actAllocationDetails as $actAllocationDetail) {
+            $orderPackage = $orderPackages->where('logistic_number',$actAllocationDetail->picktotraceid)->first();
+            $this->assertNotEmpty($orderPackage);
+        }
+    }
+
+    protected function tearDown(): void
+    {
+        $this->data['owner']->delete();
+        $this->data['commodity']->delete();
+        $this->data['order']->delete();
+
+        parent::tearDown(); // TODO: Change the autogenerated stub
+    }
+
+
 }

+ 0 - 39
tests/Services/OrderPackageService/SyncPackageByOrderHeadersTest.php

@@ -1,39 +0,0 @@
-<?php
-
-namespace Tests\Services\OrderPackageService\SyncPackageByOrderHeadersTest;
-
-use App\Logistic;
-use App\OracleDOCOrderHeader;
-use App\Owner;
-use App\Services\OracleDOCOrderHeaderService;
-use App\Services\OrderPackageService;
-use App\Services\OrderService;
-use App\Shop;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Tests\TestCase;
-
-class SyncPackageByOrderHeadersTest extends TestCase
-{
-    use RefreshDatabase;
-
-    /**
-     * @var OrderPackageService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     * @var OrderService $orderService
-     */
-    public $service;
-    public $orderService;
-    public $orderHeaderService;
-
-    public function setUp(): void
-    {
-        parent::setUp();
-        $this->service = app('OrderPackageService');
-        $this->orderService = app('OrderService');
-        $this->orderHeaderService = app('OracleDocOrderHeaderService');
-    }
-    public function testSyncPackageByOrderHeaders()
-    {
-
-    }
-}