| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- namespace Tests\Services\OrderService;
- use App\Commodity;
- use App\Logistic;
- use App\OracleDOCOrderHeader;
- use App\Order;
- use App\OrderPackage;
- use App\OrderPackageCommodities;
- use App\Owner;
- use App\Services\OrderService;
- use App\Shop;
- use App\Warehouse;
- use Carbon\Carbon;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Tests\TestCase;
- class CreateOrFindOrderInfoTest extends TestCase
- {
- use RefreshDatabase;
- /**
- * @var OrderService $orderService
- */
- public $orderService;
- private $data = [];
- public function setUp(): void
- {
- parent::setUp(); // TODO: Change the autogenerated stub
- $this->orderService = app('OrderService');
- $this->data['orderno'] = '订单编号'.((string)Carbon::now());
- $this->data['warehouse_code'] = 'test';
- $this->data['userdefine1'] ='测试物流';
- $this->data['customerid'] = '测试货主';
- $this->data['issuepartyname'] = '测试商铺';
- $this->data['orderType'] = '测试';
- $orderHeader = new OracleDOCOrderHeader();
- $orderHeader->orderno = md5('订单编号');
- $orderHeader->c_contact='京东旗舰店';
- $orderHeader->c_tel2 = md5('承运商');
- $orderHeader->c_province = md5('收货人');
- $orderHeader->c_city = md5('shou');
- $orderHeader->c_district = md5('shou');
- $orderHeader->c_address1 = md5('shou');
- $orderHeader->soreference1 = md5('客户订单号');
- $orderHeader->userdefine1 = $this->data['userdefine1'];
- $orderHeader->warehouseid = $this->data['warehouse_code'];
- $orderHeader->customerid = $this->data['customerid'];
- $orderHeader->issuepartyname =$this->data['issuepartyname'];
- $orderHeader['orderType']['codename_c'] =$this->data['orderType'];
- $orderHeader->edittime = Carbon::now();
- $orderHeader->addtime = Carbon::now();
- $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"=>'测试仓库']);
- $orderHeader->actAllocationDetails = $this->getActAllocationDetails($this->data['orderno'],$this->data['owner']);
- }
- public function getActAllocationDetails($orderno,$owner){
- $sums = rand(3,6);
- $actAllocationDetails = [];
- $picktotraceids = [
- md5((string)rand(10000,99999)),md5((string)rand(10000,99999)),md5((string)rand(10000,99999)),md5((string)rand(10000,99999))
- ];
- $sku = ['ABC'.(rand(10000,99999)),'ABC'.(rand(10000,99999)),'ABC'.(rand(10000,99999))];
- foreach ($sku as $item) {
- Commodity::query()->firstOrCreate(['owner_id'=>$owner['id'],'sku'=>$item,'name'=>md5($item)]);
- }
- for ($i=0;$i<$sums;$i++){
- $actAllocationDetails[] =[
- 'orderno' => $orderno,
- 'picktotraceid' => $picktotraceids[rand(0,count($picktotraceids)-1)],
- 'sku' => $sku[rand(0,count($sku)-1)],
- 'qty_each' => rand(1,15),
- 'customerid' =>$owner['code']
- ];
- }
- return $actAllocationDetails;
- }
- /**
- * @test
- */
- public function createOrFindOrderInfo()
- {
- $this->orderService->createOrFindOrderInfo($this->data['orderHeader']);
- $order = Order::query()->where('code',$this->data['orderHeader']['orderno'])->first();
- $this->assertNotNull($order);
- $this->assertEquals($order->code,$this->data['orderHeader']['orderno']);
- $orderPackages = OrderPackage::query()->where('order_id',$order['id'])->get();
- $orderPackagesCommodities = OrderPackageCommodities::query()->whereIn('order_package_id');
- $this->data['delete']['order_id'] = $order['id'];
- $this->data['delete']['order_package_id'] = $orderPackages->each(function($orderPackage){
- return $orderPackage['id'];
- });
- $this->data['delete']['order_package_commodity_id'] = $orderPackagesCommodities->each(function($orderPackageCommodity){
- return $orderPackageCommodity['id'];
- });
- $this->data['delete']['commodity_id'] = $orderPackagesCommodities->each(function($orderPackageCommodity){
- return $orderPackageCommodity['commodity_id'];
- });
- }
- public function tearDown(): void
- {
- cache()->flush();
- $this->data['logistic']->delete();
- $this->data['owner']->delete();
- $this->data['shop']->delete();
- $this->data['warehouse']->delete();
- Order::find($this->data['delete']['order_id'])->delete();
- OrderPackage::query()->whereIn('id',$this->data['delete']['order_package_id'])->delete();
- OrderPackageCommodities::query()->whereIn('id',$this->data['delete']['order_package_commodity_id'])->delete();
- Commodity::query()->whereIn('id',$this->data['delete']['commodity_id'])->delete();
- parent::tearDown(); // TODO: Change the autogenerated stub
- }
- }
|