service = app('OwnerService'); $owner1 = factory(Owner::class)->create(); $owner2 = factory(Owner::class)->create(); $owner3 = factory(Owner::class)->create(); $this->data['owner'] = [$owner1,$owner2,$owner3]; $this->service = app('OwnerService'); $basCustomer1 = factory(OracleBasCustomer::class)->make(["customer_type"=>'OW',"customerid"=>$owner1->code]); $basCustomer2 = factory(OracleBasCustomer::class)->make(["customer_type"=>'OW',"customerid"=>$owner2->code]); $basCustomer3 = factory(OracleBasCustomer::class)->make(["customer_type"=>'OW',"customerid"=>$owner3->code]); $basCustomers = collect([$basCustomer1,$basCustomer2,$basCustomer3]); $this->mock('OracleBasCustomerService',function ($mock)use($basCustomers,$owner1, $owner2, $owner3){ $mock->shouldReceive('first')->once()->with(["customer_type"=>'OW',"customerid"=>$owner1->code])->andReturn($basCustomers->where('customerid',$owner1->code)->first()); $mock->shouldReceive('first')->once()->with(["customer_type"=>'OW',"customerid"=>$owner2->code])->andReturn($basCustomers->where('customerid',$owner2->code)->first()); $mock->shouldReceive('first')->once()->with(["customer_type"=>'WO',"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']['code'])); 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() { foreach ($this->data['owner'] as $owner) $owner->delete(); $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']['code'])); 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']); } } public function tearDown(): void { cache()->flush(); foreach ($this->data['owner'] as $owner) { $owner->delete(); } parent::tearDown(); // TODO: Change the autogenerated stub } }