CreateOrFindOrderTest.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Tests\Services\OrderService;
  3. use App\Logistic;
  4. use App\OracleDOCOrderHeader;
  5. use App\Order;
  6. use App\Owner;
  7. use App\Services\OrderService;
  8. use App\Shop;
  9. use Illuminate\Foundation\Testing\RefreshDatabase;
  10. use Illuminate\Foundation\Testing\WithFaker;
  11. use Tests\TestCase;
  12. class CreateOrFindOrderTest extends TestCase
  13. {
  14. use RefreshDatabase;
  15. /**
  16. * @var OrderService $orderService
  17. */
  18. public $orderService;
  19. public function setUp(): void
  20. {
  21. parent::setUp();
  22. $this->orderService = app('OrderService');
  23. }
  24. /**
  25. * @test
  26. */
  27. public function createOrFindOrder()
  28. {
  29. $orderHeader = OracleDOCOrderHeader::query()->where('sostatus',99)->orderByDesc('addtime')->first();
  30. Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']);
  31. $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
  32. Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname,'owner_id'=>$owner->id]);
  33. app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
  34. if(!$orderHeader){
  35. $this->assertNull($orderHeader);
  36. return;
  37. }
  38. $this->orderService->createOrFindOrder($orderHeader);
  39. $order = Order::query()->where('code',$orderHeader->orderno)->first();
  40. $this->assertNotNull($order);
  41. $this->assertEquals($order->code,$orderHeader->orderno);
  42. }
  43. }