/** * Create a new method model * * @param ClassModel $classModel * @param MethodDataProvider $methodDataProvider * @return MethodModel */ public function make(ClassModel $classModel, MethodDataProvider $methodDataProvider) { $methodModel = new MethodModel($classModel, $methodDataProvider->getName()); $parameters = $methodDataProvider->getParameters(); foreach ($parameters as $parameterDataProvider) { $parameter = $this->parameterModelFactory->make($methodModel, $parameterDataProvider); $methodModel->addParameter($parameter); } return $methodModel; }
public function testGetMethodParameters() { $parameterDataProviderFactory = Mockery::mock(ParameterDataProviderFactory::class); $parameterDataProvider = Mockery::mock(ParameterDataProvider::class); $annotationDataProviderFactory = Mockery::mock(AnnotationDataProviderFactory::class); $reflectionClass = new ReflectionClass(MockInterface::class); $reflectionMethod = $reflectionClass->getMethod('method1'); $parameterDataProviderFactory->shouldReceive('make')->times(2)->with(Mockery::type(ReflectionParameter::class))->andReturn($parameterDataProvider); $provider = new MethodDataProvider($reflectionMethod, $parameterDataProviderFactory, $annotationDataProviderFactory); $parameters = $provider->getParameters(); $this->assertCount(2, $parameters); }