SetOrderSyncAtTest.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace Tests\Services\OrderService;
  3. use App\Services\OrderService;
  4. use App\ValueStore;
  5. use Carbon\Carbon;
  6. use Illuminate\Foundation\Testing\RefreshDatabase;
  7. use Illuminate\Foundation\Testing\WithFaker;
  8. use Illuminate\Support\Str;
  9. use Tests\TestCase;
  10. class SetOrderSyncAtTest extends TestCase
  11. {
  12. /** @var OrderService $service */
  13. private $service;
  14. private $data;
  15. public function setUp(): void
  16. {
  17. parent::setUp(); // TODO: Change the autogenerated stub
  18. $this->service = app('OrderService');
  19. $this->data['key'][] = Str::uuid();
  20. $this->data['key'][] = Str::uuid();
  21. $this->data['data'][] = Carbon::now();
  22. $this->data['data'][] = Carbon::now();
  23. }
  24. /**
  25. * @test
  26. */
  27. public function testSetOrderSyncAt()
  28. {
  29. ValueStore::query()->create(['name'=>$this->data['key'][0]]);
  30. ValueStore::query()->create(['name'=>$this->data['key'][1]]);
  31. $this->service->setOrderSyncAt($this->data['key'][0],$this->data['data'][0],false);
  32. $item = ValueStore::query()->where('name',$this->data['key'][0])->first();
  33. /** @var Carbon $time */
  34. $time = $this->data['data'][0];
  35. $this->assertEquals((string)$time->subSeconds(1),(string)$item->value);
  36. $this->service->setOrderSyncAt($this->data['key'][1],$this->data['data'][1]);
  37. $item = ValueStore::query()->where('name',$this->data['key'][1])->first();
  38. $this->assertNotEquals((string)$item->value,(string)$this->data['data'][1]);
  39. /** @var Carbon $time */
  40. $time = $this->data['data'][0];
  41. $this->assertEquals((string)$time,(string)$item->value);
  42. }
  43. public function tearDown(): void
  44. {
  45. ValueStore::query()->whereIn('name',$this->data['key'])->delete();
  46. parent::tearDown(); // TODO: Change the autogenerated stub
  47. }
  48. }