DestroyTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace Tests\Services\CacheService\GetOrExecuteTest;
  3. use App\Commodity;
  4. use App\CommodityBarcode;
  5. use App\Services\CacheService;
  6. use App\Services\CommodityBarcodeService;
  7. use Illuminate\Database\Eloquent\Collection;
  8. use Illuminate\Support\Facades\Cache;
  9. use Tests\TestCase;
  10. class InsertMany_onCommoditiesTest extends TestCase
  11. {
  12. /** @var CommodityBarcodeService $service */
  13. public $service;
  14. public $data=[];
  15. public function setUp(): void
  16. {
  17. parent::setUp();
  18. $this->service = app('CommodityBarcodeService');
  19. ($this->data['commodity']=(new Commodity()))->save();
  20. $this->data['barcodes']=['A1','B1','C2'];
  21. $inserts=(function(){
  22. $targets=[];
  23. foreach ($this->data['barcodes'] as $barcode) {
  24. $targets[]=['commodity_id'=>$this->data['commodity']['id'],'code'=>$barcode];
  25. }
  26. return $targets;
  27. })();
  28. CommodityBarcode::query()->insert($inserts);
  29. $this->data['commodityBarcodes']=CommodityBarcode::query()
  30. ->where('commodity_id',$this->data['commodity']['id'])
  31. ->whereIn('code',$this->data['barcodes'])
  32. ->get();
  33. }
  34. public function testDeleted(){
  35. $this->assertGreaterThan(0,$this->data['commodityBarcodes']->count());
  36. $destroyIds = $this->data['commodityBarcodes']->map(function ($commodityBarcode) {
  37. return $commodityBarcode['id'];
  38. });
  39. $commodityBarcodes = CommodityBarcode::query()->whereIn('id', $destroyIds)->get();
  40. $this->service->destroyCollections($commodityBarcodes);
  41. $commodityBarcodesResult = CommodityBarcode::query()->whereIn('id', $destroyIds)->get();
  42. $this->assertEquals(0, $commodityBarcodesResult->count());
  43. }
  44. public function tearDown(): void
  45. {
  46. $this->data['commodity']->delete();
  47. CommodityBarcode::destroy($this->data['commodityBarcodes']->map(function ($commodityBarcode){
  48. return $commodityBarcode['id'];
  49. }));
  50. parent::tearDown();
  51. }
  52. }