| 12345678910111213141516171819202122232425262728293031323334 |
- <?php
- namespace App\Traits;
- trait TestMockSubServices{
- function subMock(array $serviceDefinition){
- $mockingService=$this->createPartialMock(
- $serviceDefinition['class'],
- array_keys($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;
- }
- }
|