| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <?php
- namespace Tests\Services\CommodityBarcodeService;
- use App\Commodity;
- use App\CommodityBarcode;
- use App\Services\CacheService;
- use App\Services\CommodityBarcodeService;
- use Illuminate\Database\Eloquent\Collection;
- use Illuminate\Support\Facades\Cache;
- use Tests\TestCase;
- class InsertMany_onCommoditiesTest extends TestCase
- {
- /** @var CommodityBarcodeService $service */
- public $service;
- public $data=[];
- public function setUp(): void
- {
- parent::setUp();
- $this->service = app('CommodityBarcodeService');
- ($this->data['commodity']=(new Commodity()))->save();
- $this->data['barcodes']=['A1','B1','C2'];
- $this->data['commodityBarcodes']=new Collection();
- }
- public function testInsert(){
- $inputs=[
- 'commodity_id'=>$this->data['commodity']['id'],
- 'barcodes'=>$this->data['barcodes']
- ];
- $this->service->insertMany_onCommodities([$inputs]);
- $this->data['commodityBarcodes']=CommodityBarcode::query()
- ->where('commodity_id',$this->data['commodity']['id'])
- ->whereIn('code',$this->data['barcodes'])
- ->get();
- $this->data['commodityBarcodes']=$this->data['commodityBarcodes']->sortBy('code');
- $resultArr=$this->data['commodityBarcodes']->map(function ($commodityBarcode){
- return [$commodityBarcode['commodity_id'],$commodityBarcode['code']];
- });
- $resultArr=array_values($resultArr->toArray());
- $expectArr = (function () {
- $arr=[];
- foreach ($this->data['barcodes'] as $barcode) {
- $arr[]=[
- $this->data['commodity']['id'],$barcode
- ];
- }
- return $arr;
- })();
- $this->assertEquals(json_encode($expectArr),json_encode($resultArr));
- $result=$this->service->insertMany_onCommodities([]);
- $this->assertEquals(false,$result);
- }
- public function tearDown(): void
- {
- $this->data['commodity']->delete();
- CommodityBarcode::destroy($this->data['commodityBarcodes']->map(function ($commodityBarcode){
- return $commodityBarcode['id'];
- }));
- parent::tearDown();
- }
- }
|