GetParamsByAsnHeaderTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace Tests\Services\StoreService;
  3. use App\OracleDOCASNHeader;
  4. use App\Services\OwnerService;
  5. use App\Services\StoreService;
  6. use App\Services\WarehouseService;
  7. use App\Store;
  8. use Carbon\Carbon;
  9. use Tests\TestCase;
  10. class GetParamsByAsnHeaderTest extends TestCase
  11. {
  12. /**
  13. * @var StoreService $service
  14. * @var OwnerService $ownerService
  15. * @var WarehouseService $warehouseService
  16. *
  17. */
  18. public $service;
  19. public $asnHeaders;
  20. public $ownerService;
  21. public $warehouseService;
  22. public function setUp(): void
  23. {
  24. parent::setUp(); // TODO: Change the autogenerated stub
  25. $startDate = \Illuminate\Support\Carbon::now()->subSeconds(300);
  26. $this->service=app(StoreService::class);
  27. $this->ownerService=app(OwnerService::class);
  28. $this->warehouseService=app(WarehouseService::class);
  29. $this->asnHeaders=OracleDOCASNHeader::query()
  30. ->with(['asnType', 'asnStatus', 'asnDetails' => function ($query) {
  31. $query->with(['lineStatus', 'qualityStatus','basSku']);
  32. }])
  33. ->where('addTime', '>=', $startDate)
  34. ->get();
  35. }
  36. public function testGetParamsByAsnHeader(){
  37. if (empty($this->asnHeaders))return null;
  38. $stores = Store::query()->whereIn('asn_code',data_get($this->asnHeaders,'*.asnno'))->get();
  39. $owners=$this->ownerService->getByWmsOrders($this->asnHeaders);
  40. $warehouses=$this->warehouseService->getByWms($this->asnHeaders);
  41. $this->assertNotEmpty($this->asnHeaders);
  42. $this->assertNotEmpty($owners);
  43. $this->assertNotEmpty($warehouses);
  44. foreach ($owners as $owner) {
  45. $owners_code_map[$owner->code] = $owner;
  46. }
  47. foreach ($warehouses as $warehouse) {
  48. $warehouses_code_map[$warehouse->code] = $warehouse;
  49. }
  50. if (count($this->asnHeaders)>count($stores)){
  51. $params=$this->service->getParamsByAsnHeader($this->asnHeaders,$owners_code_map,$warehouses_code_map);
  52. $this->assertNotEmpty($params);
  53. }
  54. }
  55. }