service = app('OwnerService'); $owner1 = factory(Owner::class)->create(['code'=>'AABBCC1']); $owner2 = factory(Owner::class)->create(['code'=>'AABBCC2']); $owner3 = factory(Owner::class)->create(['code'=>'AABBCC3']); $this->data['owner'] = [$owner1,$owner2,$owner3]; $this->service = app('OwnerService'); $basCustomer1 = factory(OracleBasCustomer::class)->make(["customer_type"=>'OW',"customerid"=>'AABBCC1']); $basCustomer2 = factory(OracleBasCustomer::class)->make(["customer_type"=>'OW',"customerid"=>'AABBCC2']); $basCustomer3 = factory(OracleBasCustomer::class)->make(["customer_type"=>'OW',"customerid"=>'AABBCC3']); $basCustomers = collect([$basCustomer1,$basCustomer2,$basCustomer3]); $this->mock('OracleBasCustomerService',function ($mock)use($basCustomers,$owner1, $owner2, $owner3){ $mock->shouldReceive('first')->with(["Customer_Type"=>'OW',"CustomerID"=>$owner1->code])->andReturn($basCustomers->where('customerid',$owner1->code)->first()); $mock->shouldReceive('first')->with(["Customer_Type"=>'OW',"CustomerID"=>$owner2->code])->andReturn($basCustomers->where('customerid',$owner2->code)->first()); $mock->shouldReceive('first')->with(["Customer_Type"=>'OW',"CustomerID"=>$owner3->code])->andReturn($basCustomers->where('customerid',$owner3->code)->first()); }); } /** * @test */ public function getOwnerByCodesNormal() { $owners = $this->service->getOwnerByCodes(data_get($this->data['owner'],'*.code')); $this->assertNotNull($owners); $this->assertNotEquals(count($owners),0); $this->assertNotEquals(count($owners),1); $this->assertEquals(count($owners),count($this->data['owner'])); foreach ($this->data['owner'] as $item) { $owner = $owners->where('code',$item['code'])->first(); $this->assertEquals($owner->id,$item['id']); $this->assertEquals($owner->name,$item['name']); $this->assertEquals($owner->code,$item['code']); } } /** * @test */ public function ownerIsNotExist() { $owners = $this->service->getOwnerByCodes(data_get($this->data['owner'],'*.code')); $this->assertNotNull($owners); $this->assertNotEquals(count($owners),0); $this->assertNotEquals(count($owners),1); $this->assertEquals(count($owners),count($this->data['owner'])); foreach ($this->data['owner'] as $item) { $owner = $owners->where('code',$item['code'])->first(); $this->assertEquals($owner->code,$item['code']); } $this->data['owner'] = $owners; } public function tearDown(): void { foreach ($this->data['owner'] as $owner) $owner->delete(); foreach ($this->data['owner'] as $owner) { cache()->forget("getOwnerByCode_{$owner['code']}"); $owner->delete(); } parent::tearDown(); // TODO: Change the autogenerated stub } }