GetCommodityByOwnerCodeAndSKUTest.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace Tests\Feature\Services\CommodityService;
  3. use App\Commodity;
  4. use App\OracleBasSKU;
  5. use App\Owner;
  6. use App\Services\CommodityService;
  7. use App\Services\OracleBasSkuService;
  8. use Illuminate\Foundation\Testing\RefreshDatabase;
  9. use Tests\TestCase;
  10. class GetCommodityByOwnerCodeAndSKUTest extends TestCase
  11. {
  12. /**
  13. * @var CommodityService $service
  14. */
  15. private $service;
  16. private $data = [];
  17. public function setUp(): void
  18. {
  19. parent::setUp(); // TODO: Change the autogenerated stub
  20. $this->service = app('CommodityService');
  21. $owner = factory(Owner::class)->create();
  22. $basSKU = factory(OracleBasSKU::class)->make(['customerid'=>$owner->code]);
  23. $this->data['owner'] = $owner;
  24. $this->data['basSKU'] = $basSKU;
  25. $this->data['commodity1'] = factory(Commodity::class)->create([
  26. 'owner_id' => $this->data['owner']['id'] ?? '',
  27. 'sku' => $this->data['basSKU']['sku'],
  28. 'name' =>$this->data['basSKU']['descr_c'],
  29. 'length' =>$this->data['basSKU']['skulength'],
  30. 'width' => $this->data['basSKU']['skuwidth'],
  31. 'height' => $this->data['basSKU']['skuhigh'],
  32. 'volumn' => $this->data['basSKU']['cube']
  33. ]);
  34. $this->mock(OracleBasSkuService::class,function($mock)use($basSKU){
  35. $mock->shouldReceive('first')->andReturn($basSKU);
  36. });
  37. }
  38. /**
  39. * @test
  40. */
  41. public function getCommodityByOwnerCodeAndSKU()
  42. {
  43. $owner_code = $this->data['owner']['code'];
  44. $sku = $this->data['basSKU']['sku'];
  45. $commodity = $this->service->getCommodityByOwnerCodeAndSKU($owner_code,$sku);
  46. $this->data['commodity'] = $commodity;
  47. $this->assertEquals($commodity['owner_id'],$this->data['owner']['id']);
  48. $this->assertEquals($commodity['sku'],$this->data['basSKU']['sku']);
  49. $this->assertEquals($commodity['name'],$this->data['basSKU']['descr_c']);
  50. $this->assertEquals($commodity['length'],$this->data['basSKU']['skulength']);
  51. $this->assertEquals($commodity['width'],$this->data['basSKU']['skuwidth']);
  52. $this->assertEquals($commodity['height'],$this->data['basSKU']['skuhigh']);
  53. $this->assertEquals($commodity['volumn'],$this->data['basSKU']['cube']);
  54. }
  55. /**
  56. * @test
  57. */
  58. public function commodityIsNotExist()
  59. {
  60. $this->data['commodity1']->delete();
  61. $owner_code = $this->data['owner']['code'];
  62. $sku = $this->data['basSKU']['sku'];
  63. $commodity = $this->service->getCommodityByOwnerCodeAndSKU($owner_code,$sku);
  64. $this->assertNotNull($commodity->owner_id);
  65. $this->assertEquals($commodity['owner_id'],$this->data['owner']['id']);
  66. $this->assertEquals($commodity['sku'],$this->data['basSKU']['sku']);
  67. $this->assertEquals($commodity['name'],$this->data['basSKU']['descr_c']);
  68. $this->assertEquals($commodity['length'],$this->data['basSKU']['skulength']);
  69. $this->assertEquals($commodity['width'],$this->data['basSKU']['skuwidth']);
  70. $this->assertEquals($commodity['height'],$this->data['basSKU']['skuhigh']);
  71. $this->assertEquals($commodity['volumn'],$this->data['basSKU']['cube']);
  72. }
  73. public function tearDown(): void
  74. {
  75. $this->data['owner']->delete();
  76. $this->data['commodity1']->delete();
  77. if(isset($this->data['commodity1']))$this->data['commodity1']->delete();
  78. parent::tearDown(); // TODO: Change the autogenerated stub
  79. }
  80. }