|
|
@@ -0,0 +1,32 @@
|
|
|
+<?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);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($serviceDefinition['subServices'] as $subService){
|
|
|
+ $mockingService->instant(
|
|
|
+ $subService['serviceName'],
|
|
|
+ ($subServiceMock=function()use($subService){
|
|
|
+ $subServiceMock=$this->createPartialMock(
|
|
|
+ $subService['class'],
|
|
|
+ array_keys($subService['methods'])
|
|
|
+ );
|
|
|
+ foreach ($subService['methods'] as $methodName=>$methodVal){
|
|
|
+ $subServiceMock->method($methodName)->willReturn($methodVal);
|
|
|
+ }
|
|
|
+ return $subServiceMock;
|
|
|
+ })()
|
|
|
+ );
|
|
|
+ }
|
|
|
+ return $mockingService;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|