CreateOrFindOrderTest.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace Tests\Services\OrderService;
  3. use App\Logistic;
  4. use App\OracleBasCode;
  5. use App\OracleBasCustomer;
  6. use App\OracleDOCOrderHeader;
  7. use App\Order;
  8. use App\Owner;
  9. use App\Services\OrderService;
  10. use App\Shop;
  11. use App\Warehouse;
  12. use Carbon\Carbon;
  13. use Illuminate\Foundation\Testing\RefreshDatabase;
  14. use Illuminate\Foundation\Testing\WithFaker;
  15. use Illuminate\Support\Facades\DB;
  16. use Illuminate\Support\Str;
  17. use Tests\TestCase;
  18. class CreateOrFindOrderTest extends TestCase
  19. {
  20. /**
  21. * @var OrderService $orderService
  22. */
  23. public $orderService;
  24. private $data = [];
  25. public function setUp(): void
  26. {
  27. parent::setUp();
  28. $this->orderService = app('OrderService');
  29. $this->data['warehouse'] = factory(Warehouse::class)->create();
  30. $wmsOrderHeader = factory(OracleDOCOrderHeader::class)->make([
  31. 'customerid'=>'TEST_OW','sostatus'=>99,'userdefine1'=>'TEST_CA','warehouseid'=>$this->data['warehouse']['code']
  32. ]);
  33. $this->data['orderHeader'] = $wmsOrderHeader;
  34. $orderType = factory(OracleBasCode::class)->make(['code'=>'sysy', 'codeid'=>'SO_TYP', 'codename_c'=>'测试状态']);
  35. $wmsOrderHeader->setRelation('orderType',$orderType);
  36. $code_BasCode = factory(OracleBasCode::class)->make(['codeid'=>'OW','code'=>'99','descr_c'=>'订单完成']);
  37. $wmsOrderHeader->setRelation('oracleBASCode',$code_BasCode);
  38. $this->data['logistic'] = factory(Logistic::class)->create();
  39. DB::insert('insert ignore into owners (code,name) values(?,?)',['TEST_OW','测试货主']);
  40. $this->data['owner'] = Owner::query()->where('code','TEST_OW')->where('name','测试货主')->first();
  41. // $this->data['owner'] = factory(Owner::class)->create(['code'=>'TEST_OW','name'=>'测试货主']);
  42. $this->data['shop'] = factory(Shop::class)->create(['owner_id'=>$this->data['owner']['id']]);
  43. }
  44. /**
  45. * @test
  46. */
  47. public function createOrFindOrder()
  48. {
  49. $this->orderService->createOrFindOrder($this->data['orderHeader']);
  50. /** @var Order $order */
  51. $order = Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
  52. $this->assertNotNull($order);
  53. $this->assertEquals($order->code,$this->data['orderHeader']['orderno']);
  54. $this->assertEquals($order->client_code,$this->data['orderHeader']['soreference1']);
  55. }
  56. public function tearDown(): void
  57. {
  58. cache()->forget("getLogisticByCode_{$this->data['logistic']}");
  59. cache()->forget("getOwnerByCode_{$this->data['owner']}");
  60. cache()->forget("getShopByCodeMap_{$this->data['shop']}");
  61. cache()->forget("WareHouse_{$this->data['warehouse']}");
  62. $this->data['shop']->delete();
  63. $this->data['owner']->delete();
  64. $this->data['logistic']->forceDelete();
  65. $this->data['warehouse']->delete();
  66. // Warehouse::query()->where('code','WH_TEST')->delete();
  67. Order::query()->where('code',$this->data['orderHeader']['orderno'])->delete();
  68. parent::tearDown(); // TODO: Change the autogenerated stub
  69. }
  70. }