GetInnerParamsTest.php 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace Tests\Services\OrderPackageSerivce\GetInnerParamsTest;
  3. use App\Commodity;
  4. use App\Logistic;
  5. use App\OracleActAllocationDetails;
  6. use App\OracleBasSKU;
  7. use App\OracleDOCOrderHeader;
  8. use App\Order;
  9. use App\OrderPackage;
  10. use App\Owner;
  11. use App\Services\common\DataHandlerService;
  12. use App\Services\OrderPackageService;
  13. use Illuminate\Foundation\Testing\RefreshDatabase;
  14. use Tests\TestCase;
  15. class GetInnerParamsTest extends TestCase
  16. {
  17. /**
  18. * @var OrderPackageService $service
  19. */
  20. public $service;
  21. private $data = [];
  22. public function setUp(): void
  23. {
  24. parent::setUp();
  25. $this->service = app('OrderPackageService');
  26. $orderHeader = factory(OracleDOCOrderHeader::class)->make(['userdefine1' =>'TEST_OW' ]);
  27. $this->data['orderHeader'] = $orderHeader;
  28. $order = factory(Order::class)->create([
  29. 'code'=>$orderHeader['orderno'],
  30. ]);
  31. $basSku = factory(OracleBasSKU::class)->make(['customerid' => 'TEST_OW']);
  32. $this->data['sku'] = $basSku;
  33. $OracleActAllocationDetail1 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$orderHeader->orderno,'customerid'=>'TEST_OW','sku'=>$basSku->sku]);
  34. $OracleActAllocationDetail2 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$orderHeader->orderno,'customerid'=>'TEST_OW','sku'=>$basSku->sku]);
  35. $OracleActAllocationDetail3 = factory(OracleActAllocationDetails::class)->make(['orderno'=>$orderHeader->orderno,'customerid'=>'TEST_OW','sku'=>$basSku->sku]);
  36. $OracleActAllocationDetails = collect([$OracleActAllocationDetail1,$OracleActAllocationDetail2,$OracleActAllocationDetail3]);
  37. $orderHeader->setRelation('actAllocationDetails',$OracleActAllocationDetails);
  38. $this->data['actAllocationDetails'] = $OracleActAllocationDetails;
  39. $owner = factory(Owner::class)->create(['code'=>'TEST_OW']);
  40. $commodity = factory(Commodity::class)->create(['sku'=>$basSku['sku'],'owner_id' => $owner]);
  41. $logistic = factory(Logistic::class)->create();
  42. $this->data['owner'] = $owner;
  43. $this->data['commodity'] = $commodity;
  44. $this->data['order'] = $order;
  45. $this->data['logistic'] = $logistic;
  46. }
  47. /**
  48. * @test
  49. */
  50. public function getInnerParamsTest()
  51. {
  52. /** @var DataHandlerService $dataHandlerService */
  53. $dataHandlerService = app(DataHandlerService::class);
  54. $order = $this->data['order'];
  55. $orderPackage = OrderPackage::query()->whereHas('order',function($query)use($order){
  56. $query->where('code',$order['code']);
  57. })->get();
  58. $map = $dataHandlerService->dataHeader(['logistic_number'],$orderPackage);
  59. $params = $this->service->getInnerParams($this->data['orderHeader'],$this->data['order'],$map,$this->data['logistic']);
  60. $orderPackages = collect($params);
  61. foreach ($this->data['actAllocationDetails'] as $actAllocationDetail) {
  62. $orderPackage = $orderPackages->where('logistic_number',$actAllocationDetail['picktotraceid'])->first();
  63. $this->assertNotNull($orderPackage);
  64. }
  65. }
  66. public function tearDown(): void
  67. {
  68. $this->data['owner']->delete();
  69. $this->data['commodity']->delete();
  70. $this->data['order']->delete();
  71. $this->data['logistic']->forceDelete();
  72. parent::tearDown(); // TODO: Change the autogenerated stub
  73. }
  74. }