| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?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($targetArr);
- $json_encode = json_encode($targetArr);
- $iName = 'i_' . md5($json_encode . $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];
- }
- function getIntegerIncreasely($markStr): int
- {
- $iName = 'i_' . $markStr;
- if(!isset($this->data[$iName])){
- $this->data[$iName]=-1;
- }
- $this->data[$iName]++;
- return $this->data[$iName];
- }
- function makeArray($amount,$array)
- {
- $resultArrays=[];
- for($i=0;$i<$amount;$i++){
- $newArr=[];
- foreach ($array as $key=>$item){
- if(gettype($item)=='object'){
- $newArr[$key]=$item();
- }else{
- $newArr[$key]=$item;
- }
- }
- $resultArrays[]= $newArr;
- }
- return $resultArrays;
- }
- }
|