Переглянути джерело

WareHouseService 测试用例

ajun 5 роки тому
батько
коміт
b60a96f445

+ 0 - 37
tests/Services/WarehouseService/GetByWmsOrderTest.php

@@ -1,37 +0,0 @@
-<?php
-
-namespace Tests\Services\WarehouseService\GetByWmsOrdersTest;
-
-use App\OracleBasCustomer;
-use App\Services\WarehouseService;
-use App\Warehouse;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Tests\TestCase;
-
-class GetByWmsOrderTest extends TestCase
-{
-    use RefreshDatabase;
-
-    /** @var WarehouseService $service */
-    public $service;
-    public $data = [];
-
-    public function setUp(): void
-    {
-        parent::setUp();
-        $this->service = app(WarehouseService::class);
-        $basCustomers = OracleBasCustomer::query()->selectRaw('Customer_Type,CustomerId,Descr_C')->where('Customer_Type','WH')->get();
-        Warehouse::query()->whereNull('id')->delete();
-        foreach ($basCustomers as $basCustomer) {
-            $this->data['data'][]['warehouseid'] =  $basCustomer->customerid;
-        }
-    }
-
-    public function testGetByWmsOrder()
-    {
-        $warehouses =  $this->service->getByWmsOrders($this->data['data']);
-        $warehouse_ids = data_get($this->data['data'],'*.warehouseid');
-        $warehouse_s = Warehouse::query()->whereIn('code',$warehouse_ids)->get();
-        $this->assertEquals($warehouses->count(),$warehouse_s->count());
-    }
-}

+ 29 - 2
tests/Services/WarehouseService/GetWareHouseByCodesTest.php

@@ -4,7 +4,10 @@
 namespace Tests\Services\WarehouseService;
 
 
+use App\OracleBasCustomer;
+use App\Services\OracleBasCustomerService;
 use App\Services\WarehouseService;
+use App\Warehouse;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Tests\TestCase;
 
@@ -19,17 +22,41 @@ class GetWareHouseByCodesTest extends TestCase
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $this->service = app('WarehouseService');
+        $warehouse1 = factory(Warehouse::class)->create();
+        $warehouse2 = factory(Warehouse::class)->create();
+        $basCustomer1 = factory(OracleBasCustomer::class)->make(['customerid'=>$warehouse1->code,'descr_c'=>$warehouse1->name,'customer_type'=>'OW']);
+        $basCustomer2 = factory(OracleBasCustomer::class)->make(['customerid'=>$warehouse2->code,'descr_c'=>$warehouse2->name,'customer_type'=>'OW']);
+        $basCustomers = collect([$basCustomer1,$basCustomer2]);
+        $this->data['warehouses'] = collect([$warehouse1,$warehouse2]);
+        $this->data['basCustomers'] = $basCustomers;
+        $this->data['codes']  = [$warehouse1->code,$warehouse2->code];
+        $this->mock(OracleBasCustomerService::class,function($mock)use($basCustomers){
+            foreach ( $basCustomers as $basCustomer) {
+                $mock->shouldReceive('first')->with(['CustomerId'=>$basCustomer['customerid'],'Customer_Type'=>'WH'])->andReturn($basCustomer);
+            }
+        });
     }
 
     /**
      * @test
      */
-    public function getWareHouseCodes(){
-        $this->assertNotNull(11);
+    public function getWareHouseCodes()
+    {
+        $wareHouses = $this->service->getWareHouseByCodes($this->data['codes']);
+        foreach ($this->data['basCustomers'] as $datum) {
+            $wareHouse = $wareHouses->where('code',$datum['customerid'])->first();
+            $this->assertNotNull($wareHouse);
+            $this->assertEquals($wareHouse->name,$datum['descr_c']);
+            $this->assertEquals($wareHouse->code,$datum['customerid']);
+        }
     }
 
     public function tearDown(): void
     {
+        foreach ($this->data['warehouses'] as $datum) {
+            $datum->delete();
+            cache()->forget("WareHouse_{$datum['code']}");
+        }
         parent::tearDown(); // TODO: Change the autogenerated stub
     }
 

+ 0 - 32
tests/Services/WarehouseService/SyncWmsWareHouseTest.php

@@ -1,32 +0,0 @@
-<?php
-
-namespace Tests\Services\WarehouseService\SyncWmsWareHouseTest;
-
-use App\OracleDOCOrderHeader;
-use App\Services\WarehouseService;
-use Carbon\Carbon;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Tests\TestCase;
-
-class SyncWmsWareHouseTest extends TestCase
-{
-    /** @var WarehouseService $service */
-    public $service;
-
-
-    public function setUp(): void
-    {
-        $this->service = app(WarehouseService::class);
-        parent::setUp();
-    }
-
-    public function testSyncWmsWareHouse()
-    {
-        $carbon = Carbon::now()->subMinutes(10);
-        $orders = OracleDOCOrderHeader::query()->where('addtime',">=",$carbon)->get();
-        $warehouse_ids = data_get($orders,'*.warehouseid');
-        $collet = $this->service->syncWmsWareHouse($warehouse_ids);
-
-    }
-}