CreateOrFindOrderTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace Tests\Services\OrderService;
  3. use App\Logistic;
  4. use App\OracleBasCustomer;
  5. use App\OracleDOCOrderHeader;
  6. use App\Order;
  7. use App\Owner;
  8. use App\Services\OrderService;
  9. use App\Shop;
  10. use Illuminate\Foundation\Testing\RefreshDatabase;
  11. use Illuminate\Foundation\Testing\WithFaker;
  12. use Tests\TestCase;
  13. class CreateOrFindOrderTest extends TestCase
  14. {
  15. use RefreshDatabase;
  16. /**
  17. * @var OrderService $orderService
  18. */
  19. public $orderService;
  20. public function setUp(): void
  21. {
  22. parent::setUp();
  23. $this->orderService = app('OrderService');
  24. }
  25. /**
  26. * @test
  27. */
  28. public function createOrFindOrder()
  29. {
  30. $orderHeader = OracleDOCOrderHeader::query()
  31. ->where('sostatus',99)
  32. ->whereNotNull('issuepartyname')
  33. ->whereNotNull('userdefine1')
  34. ->orderByDesc('addtime')
  35. ->first();
  36. $baseCustomer = OracleBasCustomer::query()
  37. ->selectRaw('Customer_Type,CustomerID,Descr_C')
  38. ->where('Customer_Type','CA')
  39. ->where('CustomerID',$orderHeader->userdefine1)->first();
  40. Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>$baseCustomer->descr_c]);
  41. $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']);
  42. Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname,'owner_id'=>$owner->id]);
  43. app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]);
  44. $this->assertNotNull($orderHeader);
  45. $this->orderService->createOrFindOrder($orderHeader);
  46. $order = Order::query()->where('code',$orderHeader->orderno)->first();
  47. $this->assertNotNull($order);
  48. $this->assertEquals($order->code,$orderHeader->orderno);
  49. $this->assertEquals((string)$order->created_at,(string)$orderHeader->addtime);
  50. $this->assertEquals((string)$order->wms_edittime,(string)$orderHeader->edittime);
  51. }
  52. public function tearDown(): void
  53. {
  54. cache()->flush();
  55. parent::tearDown(); // TODO: Change the autogenerated stub
  56. }
  57. }