| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace Tests\Services\OrderService;
- use App\Logistic;
- use App\OracleBasCode;
- use App\OracleBasCustomer;
- use App\OracleDOCOrderHeader;
- use App\Order;
- use App\Owner;
- use App\Services\OrderService;
- use App\Shop;
- use App\Warehouse;
- use Carbon\Carbon;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Illuminate\Foundation\Testing\WithFaker;
- use Illuminate\Support\Str;
- use Tests\TestCase;
- class CreateOrFindOrderTest extends TestCase
- {
- use RefreshDatabase;
- /**
- * @var OrderService $orderService
- */
- public $orderService;
- private $data = [];
- public function setUp(): void
- {
- parent::setUp();
- $this->orderService = app('OrderService');
- $this->data['orderno'] = md5('订单编号'.((string)Carbon::now()));
- $this->data['warehouse_code'] = 'test';
- $this->data['userdefine1'] ='测试物流';
- $this->data['customerid'] = '测试货主';
- $this->data['issuepartyname'] = '测试商铺';
- $this->data['orderType'] = '测试';
- $orderHeader = new OracleDOCOrderHeader();
- $orderHeader->fillable([
- 'orderno' ,'c_contact','c_tel2','c_province','c_city','addtime','edittime',
- 'c_district','c_address1','soreference1','userdefine1','sostatus',
- 'warehouseid','customerid','issuepartyname','orderType']);
- $orderHeader->fill([
- 'orderno' =>$this->data['orderno'],
- 'c_contact' =>'承运商',
- 'c_tel2' =>'承运商',
- 'c_province' =>'shou',
- 'c_city' =>'shou',
- 'c_district' =>'shou',
- 'c_address1' =>md5('客户订单号'),
- 'soreference1' => Str::uuid(),
- 'userdefine1' =>$this->data['userdefine1'],
- 'warehouseid' =>$this->data['warehouse_code'],
- 'customerid' =>$this->data['customerid'],
- 'issuepartyname' =>$this->data['issuepartyname'],
- 'orderType' =>'sysy',
- 'sostatus' =>'99',
- 'addtime' => Carbon::now(),
- 'addtime' =>Carbon::now(),
- ]);
- $orderType = new OracleBasCode();
- $orderType->fillable(['code','codeid','codename_c']);
- $orderType->fill([
- 'code'=>'sysy', 'codeid'=>'SO_TYP', 'codename_c'=>'测试'
- ]);
- $orderHeader->setRelation('orderType',$orderType);
- $this->data['orderHeader'] =$orderHeader;
- $this->data['logistic'] = Logistic::query()->firstOrCreate(['code'=>$this->data['userdefine1'],'name'=>'测试物流']);
- $this->data['owner'] = Owner::query()->firstOrCreate(['code'=>$this->data['customerid'],'name'=>'测试货主']);
- $this->data['shop'] =Shop::query()->firstOrCreate(['name'=>$this->data['issuepartyname'],'owner_id'=>$this->data['owner']->id]);
- $this->data['warehouse'] = Warehouse::query()->firstOrCreate(["code"=>$this->data['warehouse_code'],"name"=>'测试仓库']);
- }
- /**
- * @test
- */
- public function createOrFindOrder()
- {
- $this->orderService->createOrFindOrder($this->data['orderHeader']);
- /** @var Order $order */
- $order = Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
- $this->assertNotNull($order);
- $this->assertEquals($order->code,$this->data['orderHeader']['orderno']);
- $this->assertEquals($order->client_code,$this->data['orderHeader']['soreference1']);
- $this->assertEquals((string)$order->created_at,(string)$this->data['orderHeader']['addtime']);
- $this->assertEquals((string)$order->wms_edittime,(string)$this->data['orderHeader']['edittime']);
- }
- public function tearDown(): void
- {
- cache()->flush();
- $this->data['logistic']->delete();
- $this->data['owner']->delete();
- $this->data['shop']->delete();
- $this->data['warehouse']->delete();
- Order::query()->where('code',$this->data['orderHeader']['orderno'])->delete();
- parent::tearDown(); // TODO: Change the autogenerated stub
- }
- }
|