GetCommodityByOwnerCodeAndSKUTest.php 3.5 KB

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