| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace App\Traits;
- trait TestMockSubServices{
- function subMock(array $serviceDefinition){
- $mockingService=$this->createPartialMock(
- $serviceDefinition['class'],
- isset($serviceDefinition['methods'])
- ?array_keys($serviceDefinition['methods']):[]
- );
- if(isset($serviceDefinition['methods']))
- foreach ($serviceDefinition['methods'] as $mName=>$mVal){
- $mockingService->method($mName)->willReturn($mVal);
- }
- if(isset($serviceDefinition['subServices']))
- foreach ($serviceDefinition['subServices'] as $subService){
- $mockingService->instant(
- $subService['serviceName'],
- ($subServiceMock=function()use($subService){
- $subServiceMock=$this->createPartialMock(
- $subService['class'],
- array_keys($subService['methods'])
- );
- if(isset($subService['methods']))
- foreach ($subService['methods'] as $methodName=>$methodVal){
- $subServiceMock->method($methodName)->willReturn($methodVal);
- }
- return $subServiceMock;
- })()
- );
- }
- return $mockingService;
- }
- function getTargetIdCirculately($targetArr, $additionMark='', $idName='id'){
- $amount = count($this->data['batches']);
- $iName = 'i_' . md5(json_encode($targetArr) . $additionMark);
- if(!isset($this->data[$iName])){
- $this->data['$iName']=$amount;
- }
- $this->data['$iName']++;
- if($this->data['$iName']>=$this->batchAmount)
- $this->data['$iName']=0;
- return $targetArr[$this->data['$iName']][$idName];
- }
- }
|