FindOrCreateByClientCodeTest.php 2.9 KB

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