TestSetExceptionStatus.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace Tests\Services\OrderPackageReceivedSyncService;
  3. use App\OrderPackage;
  4. use App\Services\OrderPackageReceivedSyncService;
  5. use Carbon\Carbon;
  6. use Illuminate\Foundation\Testing\RefreshDatabase;
  7. use Tests\TestCase;
  8. class TestSetExceptionStatus extends TestCase
  9. {
  10. protected $order_package_ids;
  11. /** @var OrderPackageReceivedSyncService $service */
  12. public $service;
  13. function setUp(): void
  14. {
  15. parent::setUp();
  16. $this->service = app(OrderPackageReceivedSyncService::class);
  17. }
  18. public function testReturned()
  19. {
  20. $this->assertTrue(true);
  21. }
  22. function tearDown(): void
  23. {
  24. OrderPackage::destroy($this->order_package_ids);
  25. parent::tearDown();
  26. }
  27. /**
  28. * @test
  29. */
  30. public function test_邮政待揽收_改_已复核()
  31. {
  32. $logistic_number = 'GM000001';
  33. OrderPackage::query()->where('logistic_number', $logistic_number)->delete();
  34. $order = factory(\App\Order::class)->create([
  35. 'logistic_id' => 6
  36. ]);
  37. $orderPackage = factory(OrderPackage::class)->create([
  38. 'order_id' => $order->id,
  39. 'logistic_number' => $logistic_number,
  40. ]);
  41. $data = [
  42. 'logistic_number' => $logistic_number,
  43. 'status' => '在途',
  44. 'transfer_status' => [
  45. [
  46. 'accept_time' => now()->subHours(5)->toDateTimeString(),
  47. 'accept_address' => '等待揽收中',
  48. 'remark' => '',
  49. ],
  50. [
  51. 'accept_time' => now()->subHours(2)->toDateTimeString(),
  52. 'accept_address' => '商品已下单',
  53. 'remark' => '',
  54. ],
  55. ],
  56. ];
  57. $res = $this->service->setExceptionStatus($data);
  58. $this->assertEquals('已复核',$res['status']);
  59. }
  60. public function test_如果复核时间大于前一天的18时,则不添加异常信息()
  61. {
  62. $logistic_number = 'GM000001';
  63. OrderPackage::query()->where('logistic_number', $logistic_number)->delete();
  64. $orderPackage = factory(OrderPackage::class)->create([
  65. 'logistic_number' => $logistic_number,
  66. 'sent_at' => now()->subDay()->startOfDay()->addHours(19),
  67. ]);
  68. $data = [
  69. 'logistic_number' => $logistic_number,
  70. 'status' => '在途',
  71. 'exception_status' => '在途异常',
  72. 'transfer_status' => [],
  73. ];
  74. $res = $this->service->setExceptionStatus($data);
  75. $this->assertEquals(false,isset($res['exception_status']));
  76. }
  77. }