Kaynağa Gözat

添加测试文件

ajun 5 yıl önce
ebeveyn
işleme
296ff6f4e4

+ 10 - 11
app/Services/OrderService.php

@@ -986,18 +986,18 @@ class OrderService
         }
     }
 
-    // TODO 同步时间 是否减1秒
-    public function setOrderSyncAt($key,$date,$bool=false){
-        if(!$bool) ValueStore::query()->where('key',$key)->update(['value'=>$date]);
-        ValueStore::query()->where('key',$key)->update(['value'=>Carbon::parse($date)->subSeconds(1)]);
+    // TODO
+    public function setOrderSyncAt($key,$date,$bool=true){
+        if($bool) ValueStore::query()->where('name',$key)->update(['value'=>$date]);
+        ValueStore::query()->where('name',$key)->update(['value'=>Carbon::parse($date)->subSeconds(1)]);
     }
-    // TODO 获取最后的时间 $key $set 判断是否有上次缓存
-    public function getOrderSyncAt(string $key){
-        $keyValue = ValueStore::query()->where('key',$key)->first();
-        return $keyValue->value;
+    // TODO
+    public function getOrderSyncAt(string $key ='order_last_created_sync_at'){
+        $keyValue = ValueStore::query()->where('name',$key)->first();
+        if($keyValue->value)return $keyValue->value;
+        if($key ='order_last_created_sync_at') return Order::query()->orderByDesc('created_at')->first()->created_at;
+        return Order::query()->orderByDesc('wms_edittime')->first()->created_at;
     }
-
-
     // TODO
     public function pushOrderCreatedCache($orderHeaders){
         $list = [];
@@ -1027,7 +1027,6 @@ class OrderService
             Cache::put('order_newest_update_has_set',true);
         }
     }
-
     // TODO
     public function filterOrderByCache($orderHeaders,$key ='order_newest_')
     {

+ 0 - 2
phpunit.xml

@@ -34,8 +34,6 @@
         <server name="APP_ENV" value="testing"/>
         <server name="BCRYPT_ROUNDS" value="4"/>
         <server name="CACHE_DRIVER" value="redis"/>
-        <server name="DB_CONNECTION" value="sqlite"/>
-        <server name="DB_DATABASE" value=":memory:"/>
         <server name="MAIL_DRIVER" value="array"/>
         <server name="QUEUE_CONNECTION" value="sync"/>
         <server name="SESSION_DRIVER" value="array"/>

+ 24 - 0
tests/Services/OrderService/FilterOrderByCacheTeat.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace Tests\Services\OrderService;
+
+use App\Services\OrderService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Tests\TestCase;
+
+class FilterOrderByCacheTeat extends TestCase
+{
+
+    private $service;
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OrderService');
+    }
+
+    public function testFilterOderByCache()
+    {
+
+    }
+}

+ 9 - 4
tests/Services/OrderService/GetOrderSyncAtTest.php

@@ -3,8 +3,6 @@
 namespace Tests\Services\OrderService;
 
 use App\Services\OrderService;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
 class GetOrderSyncAtTest extends TestCase
@@ -22,9 +20,16 @@ class GetOrderSyncAtTest extends TestCase
 
     public function testGetOrderSyncAt()
     {
-        $key = 'order_last_created_sync_at';
-        $data = $this->service->getOrderSyncAt($key);
+        $data = $this->service->getOrderSyncAt();
         $this->assertNotEmpty($data);
     }
 
+    /**
+     * @test
+     */
+    public function getCreatedSyncAt()
+    {
+        $data = $this->service->getOrderSyncAt('order_last_updated_sync_at');
+        $this->assertNotEmpty($data);
+    }
 }

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

@@ -0,0 +1,54 @@
+<?php
+
+namespace Tests\Services\OrderService;
+
+use App\Services\OrderService;
+use App\ValueStore;
+use Carbon\Carbon;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Illuminate\Support\Str;
+use Tests\TestCase;
+
+class SetOrderSyncAtTest extends TestCase
+{
+    /** @var OrderService $service */
+    private $service;
+    private $data;
+    public function setUp(): void
+    {
+        parent::setUp(); // TODO: Change the autogenerated stub
+        $this->service = app('OrderService');
+        $this->data['key'][] = Str::uuid();
+        $this->data['key'][] = Str::uuid();
+        $this->data['data'][] = Carbon::now();
+        $this->data['data'][] = Carbon::now();
+    }
+
+    /**
+     * @test
+     */
+    public function testSetOrderSyncAt()
+    {
+        ValueStore::query()->create(['name'=>$this->data['key'][0]]);
+        ValueStore::query()->create(['name'=>$this->data['key'][1]]);
+        $this->service->setOrderSyncAt($this->data['key'][0],$this->data['data'][0],false);
+        $item = ValueStore::query()->where('name',$this->data['key'][0])->first();
+        /** @var Carbon $time */
+        $time = $this->data['data'][0];
+        $this->assertEquals((string)$time->subSeconds(1),(string)$item->value);
+
+        $this->service->setOrderSyncAt($this->data['key'][1],$this->data['data'][1]);
+        $item = ValueStore::query()->where('name',$this->data['key'][1])->first();
+        $this->assertNotEquals((string)$item->value,(string)$this->data['data'][1]);
+        /** @var Carbon $time */
+        $time = $this->data['data'][0];
+        $this->assertEquals((string)$time,(string)$item->value);
+    }
+
+    public function tearDown(): void
+    {
+        ValueStore::query()->whereIn('name',$this->data['key'])->delete();
+        parent::tearDown(); // TODO: Change the autogenerated stub
+    }
+}