FindOrCreateByClientCodeTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace Tests\Services\OrderService\FindOrCreateByClientCodeTest;
  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 App\Warehouse;
  10. use Illuminate\Foundation\Testing\RefreshDatabase;
  11. use Illuminate\Foundation\Testing\WithFaker;
  12. use Tests\TestCase;
  13. class FindOrCreateByClientCodeTest extends TestCase
  14. {
  15. use RefreshDatabase;
  16. /** @var OrderService $service */
  17. public $service;
  18. private $data;
  19. public function setUp(): void
  20. {
  21. parent::setUp(); // TODO: Change the autogenerated stub
  22. $this->service=app('OrderService');
  23. $orderHeader = new OracleDOCOrderHeader();
  24. $orderHeader->orderno = md5('订单编号');
  25. $orderHeader->c_contact= '京东旗舰店';
  26. $orderHeader->c_tel2 = md5('承运商');
  27. $orderHeader->c_province = md5('收货人');
  28. $orderHeader->c_city = md5('shou');
  29. $orderHeader->c_district = md5('shou');
  30. $orderHeader->c_address1 = md5('shou');
  31. $orderHeader->soreference1 = md5('客户订单号');
  32. $orderHeader->userdefine1 = $this->data['userdefine1'];
  33. $orderHeader->warehouseid = $this->data['warehouse_code'];
  34. $orderHeader->customerid = $this->data['customerid'];
  35. $orderHeader->issuepartyname =$this->data['issuepartyname'];
  36. $orderHeader->setAppends(['orderType'=>['codename_c'=>$this->data['orderType']]]);
  37. $this->data['logistic'] = Logistic::query()->firstOrCreate(['code'=>$this->data['userdefine1'],'name'=>'测试物流']);
  38. $this->data['owner'] = Owner::query()->firstOrCreate(['code'=>$this->data['customerid'],'name'=>'测试货主']);
  39. $this->data['shop'] =Shop::query()->firstOrCreate(['name'=>$this->data['issuepartyname'],'owner_id'=>$this->data['owner']->id]);
  40. $this->data['warehouse'] = Warehouse::query()->firstOrCreate(["code"=>$this->data['warehouse_code'],"name"=>'测试仓库']);
  41. }
  42. /**
  43. * @test
  44. */
  45. public function findOrCreateByClientCode()
  46. {
  47. $clientCode = OracleDOCOrderHeader::query()
  48. ->orderByDesc('AddTime')
  49. ->where('sostatus',99)
  50. ->first()
  51. ->soreference1;
  52. $order = $this->service->findOrCreateByClientCode($clientCode);
  53. $this->assertNotEmpty($clientCode);
  54. $this->assertNotEmpty($order);
  55. $this->assertNotNull($order->client_code);
  56. $this->assertNotNull($order->warehouse_id);
  57. }
  58. public function tearDown(): void
  59. {
  60. cache()->flush();
  61. $this->data['logistic']->delete();
  62. $this->data['owner']->delete();
  63. $this->data['shop']->delete();
  64. $this->data['warehouse']->delete();
  65. Order::query()->where('code',$this->data['orderHeader']['orderno'])->delete();
  66. parent::tearDown(); // TODO: Change the autogenerated stub
  67. }
  68. }